<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	 
	 <meta name="description" content="XDMF parallel partitioned mesh I/O on top of HDF5">
    
    <meta name="author" content="Víctor Sande Veiga" >
    <link rel="icon" href="../favicon.png">

    <title>xdmf_handler.f90 &ndash; XH5For</title>

    <link href="../css/bootstrap.min.css" rel="stylesheet">
    <link href="../css/pygments.css" rel="stylesheet">
    <link href="../css/font-awesome.min.css" rel="stylesheet">
    <link href="../css/local.css" rel="stylesheet">
    

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    
    <script src="../js/jquery-2.1.3.min.js"></script>
    <script src="../js/svg-pan-zoom.min.js"></script>

  </head>

  <body>

    <!-- Fixed navbar -->
    <nav class="navbar navbar-inverse navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="../index.html">XH5For </a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
				
            <li class="dropdown hidden-xs visible-sm visible-md hidden-lg">
              <a href="#" class="dropdown-toggle"
              data-toggle="dropdown" role="button"
              aria-haspopup="true"
		 aria-expanded="false">Contents <span class="caret"></span></a>
	      <ul class="dropdown-menu">
              
            <li><a href="../lists/files.html">Source Files</a></li>
				
				
            <li><a href="../lists/modules.html">Modules</a></li>
				
            
                                
            <li><a href="../lists/procedures.html">Procedures</a></li>
				
								
            <li><a href="../lists/types.html">Derived Types</a></li>
				
				
            <li><a href="../lists/programs.html">Programs</a></li>
				
            </ul>
            </li>

<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li>


<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li>



<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li>

                             
<li class="visible-xs hidden-sm visible-lg"><a href="../lists/types.html">Derived Types</a></li>


<li class="visible-xs hidden-sm visible-lg"><a href="../lists/programs.html">Programs</a></li>

          </ul>
        
        <form action="../search.html" class="navbar-form navbar-right" role="search">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required>
        </div>
<!--
        <button type="submit" class="btn btn-default">Submit</button>
-->
        </form>
        
        </div><!--/.nav-collapse -->
      </div>
    </nav>

    <div class="container">
    
  
  <div class="row">
    <h1>xdmf_handler.f90
    <small>Source File</small>
    
    </h1>
    
<div class="row">
  <div class="col-lg-12">
<div class="well well-sm">
  <ul class="list-inline" style="margin-bottom:0px;display:inline">
     
     
     
     
    
    
     <li><i class="fa fa-list-ol"></i>
       <a data-toggle="tooltip"
	  data-placement="bottom" data-html="true"
	  title=" 5.0% of total for source files.">648 statements</a>
     </li> 
     
     
    <li><i class="fa fa-code"></i><a href="../src/xdmf_handler.f90"> Source File</a></li>
     
  </ul>
  <ol class="breadcrumb in-well text-right">
  
     <li class="active">xdmf_handler.f90</li>
  </ol>
</div>
</div>
</div>
<script>
  $(function () {
  $('[data-toggle="tooltip"]').tooltip()
  })
</script>

  </div>
  <div class="row">
    <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg">
    
<div id="sidebar">
  






<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-0">Modules</a></h3></div>
  <div id="mods-0" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../module/xdmf_handler.html">xdmf_handler</a>
      
    </div>
  </div>
</div>















<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div>
  <div class="list-group">
    <a class="list-group-item" href="../sourcefile/xdmf_handler.f90.html#src">xdmf_handler.f90</a>
  </div>
</div>


  <hr>
  

<div class="panel panel-default">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-0">All Source Files</a></h3></div>
  <div id="allfiles-0" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../sourcefile/ch_unstructured_hexahedron_perf.f90.html">ch_unstructured_hexahedron_perf.f90</a>
      
      <a class="list-group-item" href="../sourcefile/fox_xdmf.f90.html">fox_xdmf.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_contiguous_hyperslab_handler.f90.html">hdf5_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_dataset_per_process_handler.f90.html">hdf5_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_handler.f90.html">hdf5_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_structured_contiguous_hyperslab_handler.f90.html">hdf5_structured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_structured_dataset_per_process_handler.f90.html">hdf5_structured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_unstructured_contiguous_hyperslab_handler.f90.html">hdf5_unstructured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_unstructured_dataset_per_process_handler.f90.html">hdf5_unstructured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/mpi_environment.f90.html">mpi_environment.f90</a>
      
      <a class="list-group-item" href="../sourcefile/spatial_grid_descriptor.f90.html">spatial_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/steps_handler.f90.html">steps_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/steps_handler_test.f90.html">steps_handler_test.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_contiguous_hyperslab_factory.f90.html">structured_contiguous_hyperslab_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_dataset_per_process_factory.f90.html">structured_dataset_per_process_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_spatial_grid_descriptor.f90.html">structured_spatial_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_uniform_grid_descriptor.f90.html">structured_uniform_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_fox_wxml.f90.html">test_FoX_wxml.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_rectilinear_contiguous_hyperslabs_handler.f90.html">test_hdf5_rectilinear_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_rectilinear_dataset_per_process_handler.f90.html">test_hdf5_rectilinear_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_regular_contiguous_hyperslabs_handler.f90.html">test_hdf5_regular_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_regular_dataset_per_process_handler.f90.html">test_hdf5_regular_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_unstructured_contiguous_hyperslabs_handler.f90.html">test_hdf5_unstructured_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_unstructured_dataset_per_process_handler.f90.html">test_hdf5_unstructured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_mpi_environment.f90.html">test_mpi_environment.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_attribute.f90.html">test_xdmf_attribute.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_character_data.f90.html">test_xdmf_character_data.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_dataitem.f90.html">test_xdmf_dataitem.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_geometry.f90.html">test_xdmf_geometry.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_grid.f90.html">test_xdmf_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90.html">test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_rectilinear_dataset_per_process.f90.html">test_xdmf_rectilinear_dataset_per_process.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_regular_contiguous_hyperslabs_handler.f90.html">test_xdmf_regular_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_regular_dataset_per_process.f90.html">test_xdmf_regular_dataset_per_process.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_time.f90.html">test_xdmf_time.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_topology.f90.html">test_xdmf_topology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_unstructured_contiguous_hyperslabs_handler.f90.html">test_xdmf_unstructured_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_unstructured_dataset_per_process.f90.html">test_xdmf_unstructured_dataset_per_process.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_xinclude.f90.html">test_xdmf_xinclude.f90</a>
      
      <a class="list-group-item" href="../sourcefile/try_compile_hdf5_mod.f90.html">try_compile_hdf5_mod.f90</a>
      
      <a class="list-group-item" href="../sourcefile/try_compile_mpi_mod.f90.html">try_compile_mpi_mod.f90</a>
      
      <a class="list-group-item" href="../sourcefile/uniform_grid_descriptor.f90.html">uniform_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_contiguous_hyperslab_factory.f90.html">unstructured_contiguous_hyperslab_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_dataset_per_process_factory.f90.html">unstructured_dataset_per_process_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_spatial_grid_descriptor.f90.html">unstructured_spatial_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_uniform_grid_descriptor.f90.html">unstructured_uniform_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_attribute.f90.html">xdmf_attribute.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_character_data.f90.html">xdmf_character_data.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_contiguous_hyperslab_handler.f90.html">xdmf_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_dataitem.f90.html">xdmf_dataitem.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_dataset_per_process_handler.f90.html">xdmf_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_domain.f90.html">xdmf_domain.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_element.f90.html">xdmf_element.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_file.f90.html">xdmf_file.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_geometry.f90.html">xdmf_geometry.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_grid.f90.html">xdmf_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_handler.f90.html">xdmf_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_information.f90.html">xdmf_information.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_parameters.f90.html">xdmf_parameters.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_structured_contiguous_hyperslab_handler.f90.html">xdmf_structured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_structured_dataset_per_process_handler.f90.html">xdmf_structured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_time.f90.html">xdmf_time.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_topology.f90.html">xdmf_topology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_unstructured_contiguous_hyperslab_handler.f90.html">xdmf_unstructured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_unstructured_dataset_per_process_handler.f90.html">xdmf_unstructured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_utils.f90.html">xdmf_utils.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_xinclude.f90.html">xdmf_xinclude.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for.f90.html">xh5for.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_abstract_factory.f90.html">xh5for_abstract_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_rectilinear_grid.f90.html">xh5for_ch_rectilinear_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_rectilinear_non_static_grid_series.f90.html">xh5for_ch_rectilinear_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_rectilinear_static_grid_series.f90.html">xh5for_ch_rectilinear_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_regular_grid.f90.html">xh5for_ch_regular_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_regular_non_static_grid_series.f90.html">xh5for_ch_regular_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_regular_static_grid_series.f90.html">xh5for_ch_regular_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_hexahedron.f90.html">xh5for_ch_unstructured_hexahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_hexahedron_perf.f90.html">xh5for_ch_unstructured_hexahedron_perf.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_mixedtopology.f90.html">xh5for_ch_unstructured_mixedtopology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_non_static_tetrahedron.f90.html">xh5for_ch_unstructured_non_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_quadilateral.f90.html">xh5for_ch_unstructured_quadilateral.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_static_mixed_series.f90.html">xh5for_ch_unstructured_static_mixed_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_static_tetrahedron.f90.html">xh5for_ch_unstructured_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_tetrahedron.f90.html">xh5for_ch_unstructured_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_triangles.f90.html">xh5for_ch_unstructured_triangles.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_rectilinear_grid.f90.html">xh5for_dpp_rectilinear_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_rectilinear_non_static_grid_series.f90.html">xh5for_dpp_rectilinear_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_rectilinear_static_grid_series.f90.html">xh5for_dpp_rectilinear_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_regular_grid.f90.html">xh5for_dpp_regular_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_regular_non_static_grid_series.f90.html">xh5for_dpp_regular_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_regular_static_grid_series.f90.html">xh5for_dpp_regular_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_hexahedron.f90.html">xh5for_dpp_unstructured_hexahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_mixedtopology.f90.html">xh5for_dpp_unstructured_mixedtopology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_non_static_tetrahedron.f90.html">xh5for_dpp_unstructured_non_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_quadilateral.f90.html">xh5for_dpp_unstructured_quadilateral.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_static_tetrahedron.f90.html">xh5for_dpp_unstructured_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_tetrahedron.f90.html">xh5for_dpp_unstructured_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_triangles.f90.html">xh5for_dpp_unstructured_triangles.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_factory.f90.html">xh5for_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_handler.f90.html">xh5for_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_metadata.f90.html">xh5for_metadata.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_parameters.f90.html">xh5for_parameters.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_utils.f90.html">xh5for_utils.f90</a>
      
    </div>
  </div>
</div>


</div>  

    </div>
    <div class="col-md-9" id='text'>
    
    
    <h3>This File Depends On</h3>
    
                <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
 -->
<!-- Title: sourcefile~~xdmf_handler.f90~~EfferentGraph Pages: 1 -->
<svg id="sourcefilexdmf_handlerf90EfferentGraph" width="641pt" height="455pt"
 viewBox="0.00 0.00 641.00 455.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph" class="graph" transform="scale(0.685561 0.685561) rotate(0) translate(4 659.685)">
<title>sourcefile~~xdmf_handler.f90~~EfferentGraph</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-659.685 931,-659.685 931,4 -4,4"/>
<!-- sourcefile~xdmf_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node1" class="node"><title>sourcefile~xdmf_handler.f90</title>
<polygon fill="none" stroke="black" points="927,-154.685 831,-154.685 831,-130.685 927,-130.685 927,-154.685"/>
<text text-anchor="middle" x="879" y="-140.285" font-family="Helvetica,sans-Serif" font-size="10.50">xdmf_handler.f90</text>
</g>
<!-- sourcefile~fox_xdmf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node2" class="node"><title>sourcefile~fox_xdmf.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node2"><a xlink:href="../sourcefile/fox_xdmf.f90.html" xlink:title="fox_xdmf.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="585,-403.685 511,-403.685 511,-379.685 585,-379.685 585,-403.685"/>
<text text-anchor="middle" x="548" y="-389.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fox_xdmf.f90</text>
</a>
</g>
</g>
<!-- sourcefile~fox_xdmf.f90&#45;&gt;sourcefile~xdmf_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge42" class="edge"><title>sourcefile~fox_xdmf.f90&#45;&gt;sourcefile~xdmf_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M556.478,-379.252C577.646,-345.486 641.842,-252.55 724.5,-221.685"/>
</g>
<!-- sourcefile~steps_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node3" class="node"><title>sourcefile~steps_handler.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node3"><a xlink:href="../sourcefile/steps_handler.f90.html" xlink:title="steps_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="774.5,-175.685 676.5,-175.685 676.5,-151.685 774.5,-151.685 774.5,-175.685"/>
<text text-anchor="middle" x="725.5" y="-161.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">steps_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~steps_handler.f90&#45;&gt;sourcefile~xdmf_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge43" class="edge"><title>sourcefile~steps_handler.f90&#45;&gt;sourcefile~xdmf_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M774.852,-156.982C789.417,-154.964 805.543,-152.728 820.633,-150.637"/>
<polygon fill="#000000" stroke="#000000" points="821.458,-154.056 830.883,-149.216 820.497,-147.122 821.458,-154.056"/>
</g>
<!-- sourcefile~xh5for_parameters.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node4" class="node"><title>sourcefile~xh5for_parameters.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node4"><a xlink:href="../sourcefile/xh5for_parameters.f90.html" xlink:title="xh5for_parameters.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="272,-95.6848 151,-95.6848 151,-71.6848 272,-71.6848 272,-95.6848"/>
<text text-anchor="middle" x="211.5" y="-81.2848" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_parameters.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~xdmf_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge44" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~xdmf_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M234.496,-71.5994C264.65,-55.9495 321.018,-29.9333 373,-23.6848"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M375,-23.6848C529.223,-5.1463 574.946,18.2907 724.5,-23.6848"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M726.5,-23.6848C784.394,-41.5163 836.202,-93.683 861.557,-122.674"/>
<polygon fill="#000000" stroke="#000000" points="859.113,-125.202 868.273,-130.527 864.433,-120.652 859.113,-125.202"/>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~steps_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge30" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~steps_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M375,-103.685C430.386,-110.117 582.37,-137.486 666.525,-152.943"/>
<polygon fill="#000000" stroke="#000000" points="665.972,-156.4 676.44,-154.766 667.238,-149.515 665.972,-156.4"/>
</g>
<!-- sourcefile~spatial_grid_descriptor.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node5" class="node"><title>sourcefile~spatial_grid_descriptor.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node5"><a xlink:href="../sourcefile/spatial_grid_descriptor.f90.html" xlink:title="spatial_grid_descriptor.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="795,-133.685 656,-133.685 656,-109.685 795,-109.685 795,-133.685"/>
<text text-anchor="middle" x="725.5" y="-119.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">spatial_grid_descriptor.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge33" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M272.303,-91.3779C302.482,-95.1989 339.668,-99.8139 373,-103.685"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M375,-103.685C450.934,-112.503 470.661,-99.6773 547,-103.685"/>
</g>
<!-- sourcefile~xh5for_utils.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node7" class="node"><title>sourcefile~xh5for_utils.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node7"><a xlink:href="../sourcefile/xh5for_utils.f90.html" xlink:title="xh5for_utils.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="416.5,-193.685 331.5,-193.685 331.5,-169.685 416.5,-169.685 416.5,-193.685"/>
<text text-anchor="middle" x="374" y="-179.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_utils.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~xh5for_utils.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge37" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~xh5for_utils.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M232.18,-95.7015C260.337,-112.894 312.279,-144.609 344.599,-164.343"/>
<polygon fill="#000000" stroke="#000000" points="342.8,-167.346 353.159,-169.57 346.448,-161.371 342.8,-167.346"/>
</g>
<!-- sourcefile~uniform_grid_descriptor.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node8" class="node"><title>sourcefile~uniform_grid_descriptor.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node8"><a xlink:href="../sourcefile/uniform_grid_descriptor.f90.html" xlink:title="uniform_grid_descriptor.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="620,-75.6848 476,-75.6848 476,-51.6848 620,-51.6848 620,-75.6848"/>
<text text-anchor="middle" x="548" y="-61.2848" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">uniform_grid_descriptor.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~uniform_grid_descriptor.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge41" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~uniform_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M375,-23.6848C398.671,-20.8394 457.066,-36.2158 499.256,-48.7231"/>
<polygon fill="#000000" stroke="#000000" points="498.48,-52.1444 509.064,-51.665 500.491,-45.4395 498.48,-52.1444"/>
</g>
<!-- sourcefile~xh5for_metadata.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node23" class="node"><title>sourcefile~xh5for_metadata.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node23"><a xlink:href="../sourcefile/xh5for_metadata.f90.html" xlink:title="xh5for_metadata.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="430,-75.6848 318,-75.6848 318,-51.6848 430,-51.6848 430,-75.6848"/>
<text text-anchor="middle" x="374" y="-61.2848" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_metadata.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~xh5for_metadata.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge31" class="edge"><title>sourcefile~xh5for_parameters.f90&#45;&gt;sourcefile~xh5for_metadata.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M272.264,-76.2375C283.845,-74.7944 296.036,-73.2753 307.781,-71.8117"/>
<polygon fill="#000000" stroke="#000000" points="308.471,-75.2529 317.961,-70.5431 307.605,-68.3066 308.471,-75.2529"/>
</g>
<!-- sourcefile~spatial_grid_descriptor.f90&#45;&gt;sourcefile~xdmf_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge45" class="edge"><title>sourcefile~spatial_grid_descriptor.f90&#45;&gt;sourcefile~xdmf_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M795.158,-131.202C803.729,-132.39 812.423,-133.595 820.795,-134.755"/>
<polygon fill="#000000" stroke="#000000" points="820.431,-138.238 830.817,-136.145 821.392,-131.305 820.431,-138.238"/>
</g>
<!-- sourcefile~mpi_environment.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node6" class="node"><title>sourcefile~mpi_environment.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node6"><a xlink:href="../sourcefile/mpi_environment.f90.html" xlink:title="mpi_environment.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="604.5,-193.685 491.5,-193.685 491.5,-169.685 604.5,-169.685 604.5,-193.685"/>
<text text-anchor="middle" x="548" y="-179.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">mpi_environment.f90</text>
</a>
</g>
</g>
<!-- sourcefile~mpi_environment.f90&#45;&gt;sourcefile~xdmf_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge46" class="edge"><title>sourcefile~mpi_environment.f90&#45;&gt;sourcefile~xdmf_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M582.157,-193.78C625.447,-208.791 698.737,-231.305 724.5,-221.685"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M726.5,-221.685C771.579,-204.852 820.36,-177.631 850.051,-159.946"/>
<polygon fill="#000000" stroke="#000000" points="851.863,-162.94 858.627,-154.785 848.254,-156.942 851.863,-162.94"/>
</g>
<!-- sourcefile~mpi_environment.f90&#45;&gt;sourcefile~steps_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge29" class="edge"><title>sourcefile~mpi_environment.f90&#45;&gt;sourcefile~steps_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M604.529,-175.989C624.198,-173.972 646.374,-171.698 666.262,-169.658"/>
<polygon fill="#000000" stroke="#000000" points="666.837,-173.117 676.428,-168.615 666.123,-166.154 666.837,-173.117"/>
</g>
<!-- sourcefile~mpi_environment.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge32" class="edge"><title>sourcefile~mpi_environment.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M580.685,-169.645C601.9,-161.705 630.505,-151.233 656,-142.685 661.882,-140.713 668.072,-138.712 674.227,-136.769"/>
<polygon fill="#000000" stroke="#000000" points="675.318,-140.095 683.821,-133.774 673.232,-133.413 675.318,-140.095"/>
</g>
<!-- sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~xdmf_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge47" class="edge"><title>sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~xdmf_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M416.804,-191.233C496.907,-208.752 669.002,-242.408 724.5,-221.685"/>
</g>
<!-- sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~mpi_environment.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge36" class="edge"><title>sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~mpi_environment.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M416.636,-181.685C436.034,-181.685 459.577,-181.685 481.291,-181.685"/>
<polygon fill="#000000" stroke="#000000" points="481.446,-185.185 491.446,-181.685 481.446,-178.185 481.446,-185.185"/>
</g>
<!-- sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~uniform_grid_descriptor.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge39" class="edge"><title>sourcefile~xh5for_utils.f90&#45;&gt;sourcefile~uniform_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M387.13,-169.523C409.451,-147.336 456.528,-101.487 476,-89.6848 482.251,-85.8956 489.143,-82.5247 496.1,-79.5693"/>
<polygon fill="#000000" stroke="#000000" points="497.578,-82.7481 505.573,-75.7966 494.988,-76.2448 497.578,-82.7481"/>
</g>
<!-- sourcefile~uniform_grid_descriptor.f90&#45;&gt;sourcefile~xdmf_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge48" class="edge"><title>sourcefile~uniform_grid_descriptor.f90&#45;&gt;sourcefile~xdmf_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M583.8,-51.6172C627.066,-37.336 698.399,-16.359 724.5,-23.6848"/>
</g>
<!-- sourcefile~xdmf_time.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node9" class="node"><title>sourcefile~xdmf_time.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node9"><a xlink:href="../sourcefile/xdmf_time.f90.html" xlink:title="xdmf_time.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="414,-487.685 334,-487.685 334,-463.685 414,-463.685 414,-487.685"/>
<text text-anchor="middle" x="374" y="-473.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_time.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_time.f90&#45;&gt;sourcefile~fox_xdmf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge18" class="edge"><title>sourcefile~xdmf_time.f90&#45;&gt;sourcefile~fox_xdmf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M414.022,-464.617C422.71,-461.73 431.779,-458.379 440,-454.685 468.733,-441.774 499.526,-423.076 520.666,-409.404"/>
<polygon fill="#000000" stroke="#000000" points="522.65,-412.288 529.101,-403.883 518.817,-406.431 522.65,-412.288"/>
</g>
<!-- sourcefile~xdmf_topology.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node10" class="node"><title>sourcefile~xdmf_topology.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node10"><a xlink:href="../sourcefile/xdmf_topology.f90.html" xlink:title="xdmf_topology.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="424,-319.685 324,-319.685 324,-295.685 424,-295.685 424,-319.685"/>
<text text-anchor="middle" x="374" y="-305.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_topology.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_topology.f90&#45;&gt;sourcefile~fox_xdmf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge19" class="edge"><title>sourcefile~xdmf_topology.f90&#45;&gt;sourcefile~fox_xdmf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M417.123,-319.797C424.846,-322.438 432.753,-325.428 440,-328.685 468.733,-341.596 499.526,-360.294 520.666,-373.966"/>
<polygon fill="#000000" stroke="#000000" points="518.817,-376.939 529.101,-379.486 522.65,-371.081 518.817,-376.939"/>
</g>
<!-- sourcefile~xdmf_information.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node11" class="node"><title>sourcefile~xdmf_information.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node11"><a xlink:href="../sourcefile/xdmf_information.f90.html" xlink:title="xdmf_information.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="430.5,-655.685 317.5,-655.685 317.5,-631.685 430.5,-631.685 430.5,-655.685"/>
<text text-anchor="middle" x="374" y="-641.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_information.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_information.f90&#45;&gt;sourcefile~fox_xdmf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge20" class="edge"><title>sourcefile~xdmf_information.f90&#45;&gt;sourcefile~fox_xdmf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M426.538,-631.614C431.406,-629.166 436.005,-626.223 440,-622.685 505.111,-565.028 533.345,-459.526 542.924,-413.797"/>
<polygon fill="#000000" stroke="#000000" points="546.401,-414.256 544.923,-403.765 539.536,-412.888 546.401,-414.256"/>
</g>
<!-- sourcefile~xdmf_file.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node12" class="node"><title>sourcefile~xdmf_file.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node12"><a xlink:href="../sourcefile/xdmf_file.f90.html" xlink:title="xdmf_file.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="410.5,-571.685 337.5,-571.685 337.5,-547.685 410.5,-547.685 410.5,-571.685"/>
<text text-anchor="middle" x="374" y="-557.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_file.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_file.f90&#45;&gt;sourcefile~fox_xdmf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge21" class="edge"><title>sourcefile~xdmf_file.f90&#45;&gt;sourcefile~fox_xdmf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M410.645,-552.546C420.758,-549.402 431.357,-544.947 440,-538.685 486.36,-505.092 520.738,-445.313 536.842,-413.314"/>
<polygon fill="#000000" stroke="#000000" points="540.163,-414.49 541.42,-403.97 533.877,-411.41 540.163,-414.49"/>
</g>
<!-- sourcefile~xdmf_domain.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node13" class="node"><title>sourcefile~xdmf_domain.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node13"><a xlink:href="../sourcefile/xdmf_domain.f90.html" xlink:title="xdmf_domain.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="421.5,-613.685 326.5,-613.685 326.5,-589.685 421.5,-589.685 421.5,-613.685"/>
<text text-anchor="middle" x="374" y="-599.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_domain.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_domain.f90&#45;&gt;sourcefile~fox_xdmf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge22" class="edge"><title>sourcefile~xdmf_domain.f90&#45;&gt;sourcefile~fox_xdmf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M421.6,-591.372C428.202,-588.605 434.577,-585.106 440,-580.685 495.678,-535.284 527.748,-452.771 540.51,-413.537"/>
<polygon fill="#000000" stroke="#000000" points="543.879,-414.489 543.536,-403.899 537.201,-412.391 543.879,-414.489"/>
</g>
<!-- sourcefile~xdmf_xinclude.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node14" class="node"><title>sourcefile~xdmf_xinclude.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node14"><a xlink:href="../sourcefile/xdmf_xinclude.f90.html" xlink:title="xdmf_xinclude.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="423.5,-403.685 324.5,-403.685 324.5,-379.685 423.5,-379.685 423.5,-403.685"/>
<text text-anchor="middle" x="374" y="-389.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_xinclude.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_xinclude.f90&#45;&gt;sourcefile~fox_xdmf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge23" class="edge"><title>sourcefile~xdmf_xinclude.f90&#45;&gt;sourcefile~fox_xdmf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M423.828,-391.685C447.966,-391.685 476.941,-391.685 500.723,-391.685"/>
<polygon fill="#000000" stroke="#000000" points="500.907,-395.185 510.907,-391.685 500.907,-388.185 500.907,-395.185"/>
</g>
<!-- sourcefile~xdmf_dataitem.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node15" class="node"><title>sourcefile~xdmf_dataitem.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node15"><a xlink:href="../sourcefile/xdmf_dataitem.f90.html" xlink:title="xdmf_dataitem.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="424.5,-277.685 323.5,-277.685 323.5,-253.685 424.5,-253.685 424.5,-277.685"/>
<text text-anchor="middle" x="374" y="-263.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_dataitem.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_dataitem.f90&#45;&gt;sourcefile~fox_xdmf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge24" class="edge"><title>sourcefile~xdmf_dataitem.f90&#45;&gt;sourcefile~fox_xdmf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M421.626,-277.814C428.012,-280.307 434.318,-283.246 440,-286.685 477.679,-309.488 512.298,-348.023 531.438,-371.529"/>
<polygon fill="#000000" stroke="#000000" points="528.791,-373.822 537.767,-379.452 534.261,-369.454 528.791,-373.822"/>
</g>
<!-- sourcefile~xdmf_geometry.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node16" class="node"><title>sourcefile~xdmf_geometry.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node16"><a xlink:href="../sourcefile/xdmf_geometry.f90.html" xlink:title="xdmf_geometry.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="426.5,-235.685 321.5,-235.685 321.5,-211.685 426.5,-211.685 426.5,-235.685"/>
<text text-anchor="middle" x="374" y="-221.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_geometry.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_geometry.f90&#45;&gt;sourcefile~fox_xdmf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge25" class="edge"><title>sourcefile~xdmf_geometry.f90&#45;&gt;sourcefile~fox_xdmf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M423.867,-235.69C429.577,-238.168 435.102,-241.136 440,-244.685 486.36,-278.277 520.738,-338.056 536.842,-370.055"/>
<polygon fill="#000000" stroke="#000000" points="533.877,-371.96 541.42,-379.4 540.163,-368.88 533.877,-371.96"/>
</g>
<!-- sourcefile~xdmf_character_data.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node17" class="node"><title>sourcefile~xdmf_character_data.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node17"><a xlink:href="../sourcefile/xdmf_character_data.f90.html" xlink:title="xdmf_character_data.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="440,-361.685 308,-361.685 308,-337.685 440,-337.685 440,-361.685"/>
<text text-anchor="middle" x="374" y="-347.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_character_data.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_character_data.f90&#45;&gt;sourcefile~fox_xdmf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge26" class="edge"><title>sourcefile~xdmf_character_data.f90&#45;&gt;sourcefile~fox_xdmf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M424.288,-361.72C448.435,-367.617 477.336,-374.674 501.023,-380.458"/>
<polygon fill="#000000" stroke="#000000" points="500.282,-383.88 510.827,-382.852 501.943,-377.079 500.282,-383.88"/>
</g>
<!-- sourcefile~xdmf_attribute.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node18" class="node"><title>sourcefile~xdmf_attribute.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node18"><a xlink:href="../sourcefile/xdmf_attribute.f90.html" xlink:title="xdmf_attribute.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="423.5,-445.685 324.5,-445.685 324.5,-421.685 423.5,-421.685 423.5,-445.685"/>
<text text-anchor="middle" x="374" y="-431.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_attribute.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_attribute.f90&#45;&gt;sourcefile~fox_xdmf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge27" class="edge"><title>sourcefile~xdmf_attribute.f90&#45;&gt;sourcefile~fox_xdmf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M423.828,-421.762C448.074,-415.841 477.201,-408.729 501.043,-402.907"/>
<polygon fill="#000000" stroke="#000000" points="502.023,-406.27 510.907,-400.498 500.362,-399.47 502.023,-406.27"/>
</g>
<!-- sourcefile~xdmf_grid.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node19" class="node"><title>sourcefile~xdmf_grid.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node19"><a xlink:href="../sourcefile/xdmf_grid.f90.html" xlink:title="xdmf_grid.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="413,-529.685 335,-529.685 335,-505.685 413,-505.685 413,-529.685"/>
<text text-anchor="middle" x="374" y="-515.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_grid.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_grid.f90&#45;&gt;sourcefile~fox_xdmf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge28" class="edge"><title>sourcefile~xdmf_grid.f90&#45;&gt;sourcefile~fox_xdmf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M413.075,-508.634C422.257,-505.587 431.782,-501.658 440,-496.685 477.679,-473.882 512.298,-435.347 531.438,-411.841"/>
<polygon fill="#000000" stroke="#000000" points="534.261,-413.916 537.767,-403.918 528.791,-409.547 534.261,-413.916"/>
</g>
<!-- sourcefile~xdmf_element.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node20" class="node"><title>sourcefile~xdmf_element.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node20"><a xlink:href="../sourcefile/xdmf_element.f90.html" xlink:title="xdmf_element.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="260.5,-445.685 162.5,-445.685 162.5,-421.685 260.5,-421.685 260.5,-445.685"/>
<text text-anchor="middle" x="211.5" y="-431.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_element.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_time.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge2" class="edge"><title>sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_time.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M258.493,-445.72C278.951,-451.074 303.067,-457.384 323.877,-462.83"/>
<polygon fill="#000000" stroke="#000000" points="323.237,-466.28 333.797,-465.426 325.009,-459.508 323.237,-466.28"/>
</g>
<!-- sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_topology.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge4" class="edge"><title>sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_topology.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M220.423,-421.405C235.105,-399.603 268.65,-354.053 308,-328.685 310.607,-327.004 313.36,-325.448 316.202,-324.007"/>
<polygon fill="#000000" stroke="#000000" points="317.843,-327.107 325.51,-319.795 314.956,-320.729 317.843,-327.107"/>
</g>
<!-- sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_information.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge6" class="edge"><title>sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_information.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M215.185,-445.884C223.166,-479.273 249.896,-572.973 308,-622.685 309.554,-624.015 311.194,-625.261 312.902,-626.428"/>
<polygon fill="#000000" stroke="#000000" points="311.5,-629.661 321.91,-631.634 315.003,-623.6 311.5,-629.661"/>
</g>
<!-- sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_domain.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge7" class="edge"><title>sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_domain.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M217.105,-445.974C228.259,-474.082 259.435,-543.491 308,-580.685 310.816,-582.841 313.861,-584.78 317.043,-586.524"/>
<polygon fill="#000000" stroke="#000000" points="315.765,-589.792 326.298,-590.936 318.777,-583.473 315.765,-589.792"/>
</g>
<!-- sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_xinclude.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge8" class="edge"><title>sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_xinclude.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M258.493,-421.649C276.793,-416.86 298.02,-411.306 317.19,-406.289"/>
<polygon fill="#000000" stroke="#000000" points="318.212,-409.64 327,-403.722 316.44,-402.868 318.212,-409.64"/>
</g>
<!-- sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_dataitem.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge10" class="edge"><title>sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_dataitem.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M219.158,-421.234C236.44,-389.316 283.113,-305.744 308,-286.685 310.018,-285.139 312.154,-283.705 314.375,-282.374"/>
<polygon fill="#000000" stroke="#000000" points="316.025,-285.461 323.281,-277.741 312.795,-279.251 316.025,-285.461"/>
</g>
<!-- sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_geometry.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge12" class="edge"><title>sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_geometry.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M219.909,-421.637C231.631,-402.357 254.877,-363.226 272,-328.685 290.04,-292.293 277.983,-272.049 308,-244.685 309.479,-243.337 311.045,-242.075 312.681,-240.894"/>
<polygon fill="#000000" stroke="#000000" points="314.617,-243.814 321.357,-235.639 310.99,-237.826 314.617,-243.814"/>
</g>
<!-- sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_attribute.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge14" class="edge"><title>sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_attribute.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M260.655,-433.685C277.482,-433.685 296.563,-433.685 314.162,-433.685"/>
<polygon fill="#000000" stroke="#000000" points="314.324,-437.185 324.324,-433.685 314.324,-430.185 314.324,-437.185"/>
</g>
<!-- sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_grid.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge16" class="edge"><title>sourcefile~xdmf_element.f90&#45;&gt;sourcefile~xdmf_grid.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M227.933,-445.778C246.193,-459.619 277.921,-482.236 308,-496.685 313.41,-499.284 319.221,-501.676 325.064,-503.841"/>
<polygon fill="#000000" stroke="#000000" points="324.266,-507.27 334.86,-507.268 326.577,-500.662 324.266,-507.27"/>
</g>
<!-- sourcefile~xdmf_utils.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node21" class="node"><title>sourcefile~xdmf_utils.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node21"><a xlink:href="../sourcefile/xdmf_utils.f90.html" xlink:title="xdmf_utils.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="251,-319.685 172,-319.685 172,-295.685 251,-295.685 251,-319.685"/>
<text text-anchor="middle" x="211.5" y="-305.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_utils.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge34" class="edge"><title>sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M216.75,-295.552C227.348,-267.16 257.767,-196.123 308,-160.685 330.308,-144.947 519.737,-102.254 547,-103.685"/>
</g>
<!-- sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xh5for_utils.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge38" class="edge"><title>sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xh5for_utils.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M220.423,-295.405C235.105,-273.603 268.65,-228.053 308,-202.685 312.312,-199.905 317.024,-197.464 321.876,-195.329"/>
<polygon fill="#000000" stroke="#000000" points="323.307,-198.526 331.313,-191.587 320.727,-192.019 323.307,-198.526"/>
</g>
<!-- sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_time.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge3" class="edge"><title>sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_time.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M219.158,-320.136C236.44,-352.054 283.113,-435.625 308,-454.685 312.825,-458.38 318.324,-461.438 324.032,-463.965"/>
<polygon fill="#000000" stroke="#000000" points="323.167,-467.383 333.756,-467.735 325.698,-460.856 323.167,-467.383"/>
</g>
<!-- sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_topology.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge5" class="edge"><title>sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_topology.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M251.353,-307.685C270.089,-307.685 292.97,-307.685 313.812,-307.685"/>
<polygon fill="#000000" stroke="#000000" points="313.853,-311.185 323.853,-307.685 313.853,-304.185 313.853,-311.185"/>
</g>
<!-- sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_xinclude.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge9" class="edge"><title>sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_xinclude.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M227.933,-319.778C246.193,-333.619 277.921,-356.236 308,-370.685 312.017,-372.614 316.255,-374.43 320.563,-376.124"/>
<polygon fill="#000000" stroke="#000000" points="319.454,-379.445 330.047,-379.633 321.883,-372.88 319.454,-379.445"/>
</g>
<!-- sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_dataitem.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge11" class="edge"><title>sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_dataitem.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M251.353,-297.518C271.144,-292.339 295.561,-285.949 317.314,-280.257"/>
<polygon fill="#000000" stroke="#000000" points="318.306,-283.615 327.094,-277.697 316.534,-276.843 318.306,-283.615"/>
</g>
<!-- sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_geometry.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge13" class="edge"><title>sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_geometry.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M227.933,-295.592C246.193,-281.75 277.921,-259.134 308,-244.685 312.017,-242.755 316.255,-240.939 320.563,-239.246"/>
<polygon fill="#000000" stroke="#000000" points="321.883,-242.49 330.047,-235.737 319.454,-235.925 321.883,-242.49"/>
</g>
<!-- sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_attribute.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge15" class="edge"><title>sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_attribute.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M220.423,-319.965C235.105,-341.766 268.65,-387.317 308,-412.685 310.607,-414.365 313.36,-415.922 316.202,-417.362"/>
<polygon fill="#000000" stroke="#000000" points="314.956,-420.64 325.51,-421.575 317.843,-414.263 314.956,-420.64"/>
</g>
<!-- sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_grid.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge17" class="edge"><title>sourcefile~xdmf_utils.f90&#45;&gt;sourcefile~xdmf_grid.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M219.909,-319.733C231.631,-339.012 254.877,-378.143 272,-412.685 290.04,-449.076 277.983,-469.321 308,-496.685 313.005,-501.247 319.012,-504.82 325.324,-507.616"/>
<polygon fill="#000000" stroke="#000000" points="324.119,-510.902 334.71,-511.183 326.606,-504.359 324.119,-510.902"/>
</g>
<!-- sourcefile~xdmf_parameters.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_node22" class="node"><title>sourcefile~xdmf_parameters.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~EfferentGraph_node22"><a xlink:href="../sourcefile/xdmf_parameters.f90.html" xlink:title="xdmf_parameters.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="115,-319.685 7.10543e-15,-319.685 7.10543e-15,-295.685 115,-295.685 115,-319.685"/>
<text text-anchor="middle" x="57.5" y="-305.285" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_parameters.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_parameters.f90&#45;&gt;sourcefile~xdmf_utils.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge1" class="edge"><title>sourcefile~xdmf_parameters.f90&#45;&gt;sourcefile~xdmf_utils.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M115.099,-307.685C130.461,-307.685 146.956,-307.685 161.838,-307.685"/>
<polygon fill="#000000" stroke="#000000" points="161.849,-311.185 171.849,-307.685 161.849,-304.185 161.849,-311.185"/>
</g>
<!-- sourcefile~xh5for_metadata.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge35" class="edge"><title>sourcefile~xh5for_metadata.f90&#45;&gt;sourcefile~spatial_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M410.38,-75.7689C444.789,-86.5963 498.78,-101.153 547,-103.685"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M549,-103.685C580.739,-105.351 615.584,-108.624 645.801,-111.927"/>
<polygon fill="#000000" stroke="#000000" points="645.534,-115.419 655.86,-113.046 646.308,-108.462 645.534,-115.419"/>
</g>
<!-- sourcefile~xh5for_metadata.f90&#45;&gt;sourcefile~uniform_grid_descriptor.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~EfferentGraph_edge40" class="edge"><title>sourcefile~xh5for_metadata.f90&#45;&gt;sourcefile~uniform_grid_descriptor.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M430.369,-63.6848C441.647,-63.6848 453.734,-63.6848 465.699,-63.6848"/>
<polygon fill="#000000" stroke="#000000" points="465.7,-67.1849 475.7,-63.6848 465.7,-60.1849 465.7,-67.1849"/>
</g>
</g>
</svg>
</div>
                <script>var pansourcefilexdmf_handlerf90EfferentGraph = svgPanZoom('#sourcefilexdmf_handlerf90EfferentGraph', {
                    zoomEnabled: true,
                    controlIconsEnabled: true,
                    fit: true,
                    center: true,});
                    </script>
                <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div>
                <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog">
                  <div class="modal-dialog modal-lg" role="document">
                    <div class="modal-content">
                      <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                        <h4 class="modal-title" id="-graph-help-label">Graph Key</h4>
                      </div>
                      <div class="modal-body">
                        
    <p>Nodes of different colours represent the following: </p>
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
 -->
<!-- Title: Graph Key Pages: 1 -->
<svg width="190pt" height="32pt"
 viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)">
<title>Graph Key</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/>
<!-- Source File -->
<g id="node1" class="node"><title>Source File</title>
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/>
<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text>
</g>
<!-- This Page&#39;s Entity -->
<g id="node2" class="node"><title>This Page&#39;s Entity</title>
<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/>
<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page&#39;s Entity</text>
</g>
</g>
</svg>

    
    <p>Solid arrows point from a file to a file which depends upon it. A file 
    is dependent upon another if the latter must be compiled before the former
    can be.
    </p>
    
                      </div>
                    </div>
                  </div>
                </div>
                
    
      
      <h3>Files Dependent On This One</h3>
      
                <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
 -->
<!-- Title: sourcefile~~xdmf_handler.f90~~AfferentGraph Pages: 1 -->
<svg id="sourcefilexdmf_handlerf90AfferentGraph" width="641pt" height="449pt"
 viewBox="0.00 0.00 641.00 448.89" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph" class="graph" transform="scale(0.384985 0.384985) rotate(0) translate(4 1162)">
<title>sourcefile~~xdmf_handler.f90~~AfferentGraph</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-1162 1661,-1162 1661,4 -4,4"/>
<!-- sourcefile~xdmf_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node1" class="node"><title>sourcefile~xdmf_handler.f90</title>
<polygon fill="none" stroke="black" points="96,-585 0,-585 0,-561 96,-561 96,-585"/>
<text text-anchor="middle" x="48" y="-570.6" font-family="Helvetica,sans-Serif" font-size="10.50">xdmf_handler.f90</text>
</g>
<!-- sourcefile~unstructured_dataset_per_process_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node2" class="node"><title>sourcefile~unstructured_dataset_per_process_factory.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node2"><a xlink:href="../sourcefile/unstructured_dataset_per_process_factory.f90.html" xlink:title="unstructured_dataset_per_process_factory.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="950,-591 715,-591 715,-567 950,-567 950,-591"/>
<text text-anchor="middle" x="832.5" y="-576.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">unstructured_dataset_per_process_factory.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~unstructured_dataset_per_process_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge55" class="edge"><title>sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~unstructured_dataset_per_process_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M511,-579C574.558,-572.319 645.599,-571.633 704.614,-572.907"/>
<polygon fill="#000000" stroke="#000000" points="704.651,-576.409 714.732,-573.147 704.818,-569.411 704.651,-576.409"/>
</g>
<!-- sourcefile~xdmf_contiguous_hyperslab_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node3" class="node"><title>sourcefile~xdmf_contiguous_hyperslab_handler.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node3"><a xlink:href="../sourcefile/xdmf_contiguous_hyperslab_handler.f90.html" xlink:title="xdmf_contiguous_hyperslab_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="338,-743 132,-743 132,-719 338,-719 338,-743"/>
<text text-anchor="middle" x="235" y="-728.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_contiguous_hyperslab_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~xdmf_contiguous_hyperslab_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge56" class="edge"><title>sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~xdmf_contiguous_hyperslab_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M63.2095,-585.136C95.2242,-612.478 173.199,-679.073 211.717,-711.969"/>
<polygon fill="#000000" stroke="#000000" points="209.865,-714.99 219.742,-718.823 214.411,-709.667 209.865,-714.99"/>
</g>
<!-- sourcefile~unstructured_contiguous_hyperslab_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node4" class="node"><title>sourcefile~unstructured_contiguous_hyperslab_factory.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node4"><a xlink:href="../sourcefile/unstructured_contiguous_hyperslab_factory.f90.html" xlink:title="unstructured_contiguous_hyperslab_factory.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="952,-671 713,-671 713,-647 952,-647 952,-671"/>
<text text-anchor="middle" x="832.5" y="-656.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">unstructured_contiguous_hyperslab_factory.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~unstructured_contiguous_hyperslab_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge57" class="edge"><title>sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~unstructured_contiguous_hyperslab_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M236,-619C359.222,-635.527 385.414,-666.458 509,-680"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M511,-680C591.37,-688.807 683.512,-680.901 748.309,-672.389"/>
<polygon fill="#000000" stroke="#000000" points="749.025,-675.824 758.468,-671.02 748.09,-668.887 749.025,-675.824"/>
</g>
<!-- sourcefile~structured_contiguous_hyperslab_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node5" class="node"><title>sourcefile~structured_contiguous_hyperslab_factory.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node5"><a xlink:href="../sourcefile/structured_contiguous_hyperslab_factory.f90.html" xlink:title="structured_contiguous_hyperslab_factory.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="946,-713 719,-713 719,-689 946,-689 946,-713"/>
<text text-anchor="middle" x="832.5" y="-698.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">structured_contiguous_hyperslab_factory.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~structured_contiguous_hyperslab_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge58" class="edge"><title>sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~structured_contiguous_hyperslab_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M511,-680C576.105,-687.134 648.936,-692.142 708.698,-695.474"/>
<polygon fill="#000000" stroke="#000000" points="708.758,-698.982 718.934,-696.035 709.141,-691.993 708.758,-698.982"/>
</g>
<!-- sourcefile~xh5for_abstract_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node6" class="node"><title>sourcefile~xh5for_abstract_factory.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node6"><a xlink:href="../sourcefile/xh5for_abstract_factory.f90.html" xlink:title="xh5for_abstract_factory.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="581.5,-631 438.5,-631 438.5,-607 581.5,-607 581.5,-631"/>
<text text-anchor="middle" x="510" y="-616.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_abstract_factory.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~xh5for_abstract_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge59" class="edge"><title>sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~xh5for_abstract_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M236,-619C300.1,-627.597 373.431,-627.029 427.939,-624.624"/>
<polygon fill="#000000" stroke="#000000" points="428.412,-628.106 438.236,-624.138 428.082,-621.114 428.412,-628.106"/>
</g>
<!-- sourcefile~xh5for_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node7" class="node"><title>sourcefile~xh5for_handler.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node7"><a xlink:href="../sourcefile/xh5for_handler.f90.html" xlink:title="xh5for_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1257,-591 1154,-591 1154,-567 1257,-567 1257,-591"/>
<text text-anchor="middle" x="1205.5" y="-576.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~xh5for_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge60" class="edge"><title>sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~xh5for_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M61.5545,-560.823C77.0366,-546.352 104.67,-522.251 132,-507 287.544,-420.198 330.875,-371 509,-371 509,-371 509,-371 833.5,-371 900.479,-371 921.744,-362.909 983,-390 1073.21,-429.896 1154.58,-518.772 1188.18,-558.787"/>
<polygon fill="#000000" stroke="#000000" points="1185.54,-561.081 1194.61,-566.549 1190.93,-556.615 1185.54,-561.081"/>
</g>
<!-- sourcefile~xdmf_dataset_per_process_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node8" class="node"><title>sourcefile~xdmf_dataset_per_process_handler.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node8"><a xlink:href="../sourcefile/xdmf_dataset_per_process_handler.f90.html" xlink:title="xdmf_dataset_per_process_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="336,-540 134,-540 134,-516 336,-516 336,-540"/>
<text text-anchor="middle" x="235" y="-525.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_dataset_per_process_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~xdmf_dataset_per_process_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge61" class="edge"><title>sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~xdmf_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M96.162,-561.528C120.072,-555.712 149.352,-548.59 174.767,-542.408"/>
<polygon fill="#000000" stroke="#000000" points="175.772,-545.766 184.662,-540.001 174.118,-538.964 175.772,-545.766"/>
</g>
<!-- sourcefile~structured_dataset_per_process_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node9" class="node"><title>sourcefile~structured_dataset_per_process_factory.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node9"><a xlink:href="../sourcefile/structured_dataset_per_process_factory.f90.html" xlink:title="structured_dataset_per_process_factory.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="944,-549 721,-549 721,-525 944,-525 944,-549"/>
<text text-anchor="middle" x="832.5" y="-534.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">structured_dataset_per_process_factory.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~structured_dataset_per_process_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge62" class="edge"><title>sourcefile~xdmf_handler.f90&#45;&gt;sourcefile~structured_dataset_per_process_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M86.7906,-585.006C123.849,-596.156 182.172,-612.049 234,-619"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M236,-619C297.489,-627.247 312.615,-606.99 374,-598 433.952,-589.22 448.741,-585.334 509,-579"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M511,-579C552.795,-574.607 655.391,-560.978 733.336,-550.424"/>
<polygon fill="#000000" stroke="#000000" points="734.239,-553.833 743.678,-549.022 733.299,-546.897 734.239,-553.833"/>
</g>
<!-- sourcefile~xh5for_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node10" class="node"><title>sourcefile~xh5for_factory.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node10"><a xlink:href="../sourcefile/xh5for_factory.f90.html" xlink:title="xh5for_factory.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1118,-591 1019,-591 1019,-567 1118,-567 1118,-591"/>
<text text-anchor="middle" x="1068.5" y="-576.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_factory.f90</text>
</a>
</g>
</g>
<!-- sourcefile~unstructured_dataset_per_process_factory.f90&#45;&gt;sourcefile~xh5for_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge2" class="edge"><title>sourcefile~unstructured_dataset_per_process_factory.f90&#45;&gt;sourcefile~xh5for_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M950.157,-579C970.445,-579 990.747,-579 1008.62,-579"/>
<polygon fill="#000000" stroke="#000000" points="1008.85,-582.5 1018.85,-579 1008.85,-575.5 1008.85,-582.5"/>
</g>
<!-- sourcefile~xdmf_structured_contiguous_hyperslab_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node11" class="node"><title>sourcefile~xdmf_structured_contiguous_hyperslab_handler.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node11"><a xlink:href="../sourcefile/xdmf_structured_contiguous_hyperslab_handler.f90.html" xlink:title="xdmf_structured_contiguous_hyperslab_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="640,-791 380,-791 380,-767 640,-767 640,-791"/>
<text text-anchor="middle" x="510" y="-776.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_structured_contiguous_hyperslab_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~xdmf_structured_contiguous_hyperslab_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge8" class="edge"><title>sourcefile~xdmf_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~xdmf_structured_contiguous_hyperslab_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M304.537,-743.05C342.831,-749.784 390.707,-758.201 430.502,-765.198"/>
<polygon fill="#000000" stroke="#000000" points="429.98,-768.66 440.435,-766.945 431.192,-761.766 429.98,-768.66"/>
</g>
<!-- sourcefile~xdmf_unstructured_contiguous_hyperslab_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node12" class="node"><title>sourcefile~xdmf_unstructured_contiguous_hyperslab_handler.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node12"><a xlink:href="../sourcefile/xdmf_unstructured_contiguous_hyperslab_handler.f90.html" xlink:title="xdmf_unstructured_contiguous_hyperslab_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="646,-743 374,-743 374,-719 646,-719 646,-743"/>
<text text-anchor="middle" x="510" y="-728.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_unstructured_contiguous_hyperslab_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~xdmf_unstructured_contiguous_hyperslab_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge9" class="edge"><title>sourcefile~xdmf_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~xdmf_unstructured_contiguous_hyperslab_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M338.043,-731C346.425,-731 354.992,-731 363.607,-731"/>
<polygon fill="#000000" stroke="#000000" points="363.733,-734.5 373.733,-731 363.733,-727.5 363.733,-734.5"/>
</g>
<!-- sourcefile~unstructured_contiguous_hyperslab_factory.f90&#45;&gt;sourcefile~xh5for_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge10" class="edge"><title>sourcefile~unstructured_contiguous_hyperslab_factory.f90&#45;&gt;sourcefile~xh5for_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M935.107,-646.937C951.423,-643.413 967.897,-638.865 983,-633 1005.32,-624.332 1028.05,-609.392 1044.3,-597.421"/>
<polygon fill="#000000" stroke="#000000" points="1046.75,-599.955 1052.62,-591.135 1042.53,-594.37 1046.75,-599.955"/>
</g>
<!-- sourcefile~structured_contiguous_hyperslab_factory.f90&#45;&gt;sourcefile~xh5for_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge11" class="edge"><title>sourcefile~structured_contiguous_hyperslab_factory.f90&#45;&gt;sourcefile~xh5for_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M946.252,-694.345C959.111,-690.945 971.657,-686.298 983,-680 1016.55,-661.37 1042.44,-623.743 1056.28,-600.044"/>
<polygon fill="#000000" stroke="#000000" points="1059.45,-601.558 1061.31,-591.128 1053.35,-598.121 1059.45,-601.558"/>
</g>
<!-- sourcefile~xh5for_abstract_factory.f90&#45;&gt;sourcefile~unstructured_dataset_per_process_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge14" class="edge"><title>sourcefile~xh5for_abstract_factory.f90&#45;&gt;sourcefile~unstructured_dataset_per_process_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M581.732,-610.172C623.811,-604.921 678.014,-598.156 725.168,-592.271"/>
<polygon fill="#000000" stroke="#000000" points="725.626,-595.741 735.116,-591.029 724.759,-588.795 725.626,-595.741"/>
</g>
<!-- sourcefile~xh5for_abstract_factory.f90&#45;&gt;sourcefile~unstructured_contiguous_hyperslab_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge13" class="edge"><title>sourcefile~xh5for_abstract_factory.f90&#45;&gt;sourcefile~unstructured_contiguous_hyperslab_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M581.732,-627.828C623.811,-633.079 678.014,-639.844 725.168,-645.729"/>
<polygon fill="#000000" stroke="#000000" points="724.759,-649.205 735.116,-646.971 725.626,-642.259 724.759,-649.205"/>
</g>
<!-- sourcefile~xh5for_abstract_factory.f90&#45;&gt;sourcefile~structured_contiguous_hyperslab_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge12" class="edge"><title>sourcefile~xh5for_abstract_factory.f90&#45;&gt;sourcefile~structured_contiguous_hyperslab_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M546.654,-631.023C573.943,-640.32 612.466,-653.647 646,-666 662.109,-671.934 665.389,-675.666 682,-680 692.291,-682.685 703.076,-685.046 713.939,-687.119"/>
<polygon fill="#000000" stroke="#000000" points="713.46,-690.59 723.926,-688.943 714.717,-683.704 713.46,-690.59"/>
</g>
<!-- sourcefile~xh5for_abstract_factory.f90&#45;&gt;sourcefile~xh5for_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge15" class="edge"><title>sourcefile~xh5for_abstract_factory.f90&#45;&gt;sourcefile~xh5for_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M833.5,-619C960.113,-613.645 992.743,-619.242 1118,-600 1128.88,-598.329 1140.39,-595.963 1151.35,-593.418"/>
<polygon fill="#000000" stroke="#000000" points="1152.32,-596.785 1161.23,-591.045 1150.69,-589.979 1152.32,-596.785"/>
</g>
<!-- sourcefile~xh5for_abstract_factory.f90&#45;&gt;sourcefile~structured_dataset_per_process_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge16" class="edge"><title>sourcefile~xh5for_abstract_factory.f90&#45;&gt;sourcefile~structured_dataset_per_process_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M581.559,-613.287C603.121,-609.504 626.319,-603.266 646,-593 665.785,-582.68 661.959,-567.815 682,-558 691.186,-553.501 701.046,-549.885 711.161,-546.989"/>
<polygon fill="#000000" stroke="#000000" points="712.139,-550.351 720.923,-544.426 710.362,-543.58 712.139,-550.351"/>
</g>
<!-- sourcefile~xh5for_abstract_factory.f90&#45;&gt;sourcefile~xh5for_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge17" class="edge"><title>sourcefile~xh5for_abstract_factory.f90&#45;&gt;sourcefile~xh5for_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M581.69,-620.713C646.655,-621.881 745.609,-622.633 831.5,-619"/>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M833.5,-619C900.419,-616.17 917.164,-612.32 983,-600 992.807,-598.165 1003.17,-595.88 1013.16,-593.5"/>
<polygon fill="#000000" stroke="#000000" points="1014.1,-596.873 1022.98,-591.1 1012.44,-590.073 1014.1,-596.873"/>
</g>
<!-- sourcefile~xh5for.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node16" class="node"><title>sourcefile~xh5for.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node16"><a xlink:href="../sourcefile/xh5for.f90.html" xlink:title="xh5for.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1354,-591 1293,-591 1293,-567 1354,-567 1354,-591"/>
<text text-anchor="middle" x="1323.5" y="-576.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for_handler.f90&#45;&gt;sourcefile~xh5for.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge46" class="edge"><title>sourcefile~xh5for_handler.f90&#45;&gt;sourcefile~xh5for.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1257.04,-579C1265.63,-579 1274.43,-579 1282.69,-579"/>
<polygon fill="#000000" stroke="#000000" points="1282.81,-582.5 1292.81,-579 1282.81,-575.5 1282.81,-582.5"/>
</g>
<!-- sourcefile~xdmf_structured_dataset_per_process_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node45" class="node"><title>sourcefile~xdmf_structured_dataset_per_process_handler.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node45"><a xlink:href="../sourcefile/xdmf_structured_dataset_per_process_handler.f90.html" xlink:title="xdmf_structured_dataset_per_process_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="638,-476 382,-476 382,-452 638,-452 638,-476"/>
<text text-anchor="middle" x="510" y="-461.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_structured_dataset_per_process_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_dataset_per_process_handler.f90&#45;&gt;sourcefile~xdmf_structured_dataset_per_process_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge52" class="edge"><title>sourcefile~xdmf_dataset_per_process_handler.f90&#45;&gt;sourcefile~xdmf_structured_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M287.349,-515.962C332.772,-505.314 399.14,-489.755 447.407,-478.439"/>
<polygon fill="#000000" stroke="#000000" points="448.481,-481.783 457.418,-476.093 446.883,-474.967 448.481,-481.783"/>
</g>
<!-- sourcefile~xdmf_unstructured_dataset_per_process_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node46" class="node"><title>sourcefile~xdmf_unstructured_dataset_per_process_handler.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node46"><a xlink:href="../sourcefile/xdmf_unstructured_dataset_per_process_handler.f90.html" xlink:title="xdmf_unstructured_dataset_per_process_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="644,-540 376,-540 376,-516 644,-516 644,-540"/>
<text text-anchor="middle" x="510" y="-525.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xdmf_unstructured_dataset_per_process_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_dataset_per_process_handler.f90&#45;&gt;sourcefile~xdmf_unstructured_dataset_per_process_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge53" class="edge"><title>sourcefile~xdmf_dataset_per_process_handler.f90&#45;&gt;sourcefile~xdmf_unstructured_dataset_per_process_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M336.105,-528C345.806,-528 355.772,-528 365.786,-528"/>
<polygon fill="#000000" stroke="#000000" points="365.808,-531.5 375.808,-528 365.808,-524.5 365.808,-531.5"/>
</g>
<!-- sourcefile~structured_dataset_per_process_factory.f90&#45;&gt;sourcefile~xh5for_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge54" class="edge"><title>sourcefile~structured_dataset_per_process_factory.f90&#45;&gt;sourcefile~xh5for_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M929.85,-549.03C947.58,-551.67 965.889,-554.681 983,-558 992.683,-559.878 1002.92,-562.163 1012.8,-564.525"/>
<polygon fill="#000000" stroke="#000000" points="1011.98,-567.928 1022.52,-566.901 1013.64,-561.128 1011.98,-567.928"/>
</g>
<!-- sourcefile~xh5for_factory.f90&#45;&gt;sourcefile~xh5for_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~xh5for_factory.f90&#45;&gt;sourcefile~xh5for_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1118.24,-579C1126.4,-579 1134.96,-579 1143.38,-579"/>
<polygon fill="#000000" stroke="#000000" points="1143.56,-582.5 1153.56,-579 1143.56,-575.5 1143.56,-582.5"/>
</g>
<!-- sourcefile~xdmf_structured_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~structured_contiguous_hyperslab_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge3" class="edge"><title>sourcefile~xdmf_structured_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~structured_contiguous_hyperslab_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M603.048,-766.998C617.819,-763.273 632.631,-758.393 646,-752 664.789,-743.015 662.959,-730.438 682,-722 690.625,-718.178 699.781,-715.015 709.147,-712.402"/>
<polygon fill="#000000" stroke="#000000" points="710.159,-715.756 718.97,-709.874 708.414,-708.977 710.159,-715.756"/>
</g>
<!-- sourcefile~test_xdmf_regular_contiguous_hyperslabs_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node13" class="node"><title>sourcefile~test_xdmf_regular_contiguous_hyperslabs_handler.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node13"><a xlink:href="../sourcefile/test_xdmf_regular_contiguous_hyperslabs_handler.f90.html" xlink:title="test_xdmf_regular_contiguous_hyperslabs_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="969.5,-797 695.5,-797 695.5,-773 969.5,-773 969.5,-797"/>
<text text-anchor="middle" x="832.5" y="-782.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">test_xdmf_regular_contiguous_hyperslabs_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_structured_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~test_xdmf_regular_contiguous_hyperslabs_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge4" class="edge"><title>sourcefile~xdmf_structured_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~test_xdmf_regular_contiguous_hyperslabs_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M640.436,-781.423C655.116,-781.698 670.155,-781.979 685.034,-782.258"/>
<polygon fill="#000000" stroke="#000000" points="685.239,-785.762 695.303,-782.45 685.371,-778.764 685.239,-785.762"/>
</g>
<!-- sourcefile~test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node14" class="node"><title>sourcefile~test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node14"><a xlink:href="../sourcefile/test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90.html" xlink:title="test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="976,-839 689,-839 689,-815 976,-815 976,-839"/>
<text text-anchor="middle" x="832.5" y="-824.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_structured_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge5" class="edge"><title>sourcefile~xdmf_structured_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M585.449,-791.038C615.429,-795.811 650.341,-801.277 682,-806 698.794,-808.505 716.663,-811.087 733.986,-813.547"/>
<polygon fill="#000000" stroke="#000000" points="733.719,-817.044 744.111,-814.98 734.7,-810.113 733.719,-817.044"/>
</g>
<!-- sourcefile~xdmf_unstructured_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~unstructured_contiguous_hyperslab_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge6" class="edge"><title>sourcefile~xdmf_unstructured_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~unstructured_contiguous_hyperslab_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M559.787,-718.93C585.608,-712.215 617.734,-703.342 646,-694 662.3,-688.613 665.389,-684.334 682,-680 692.291,-677.315 703.076,-674.954 713.939,-672.881"/>
<polygon fill="#000000" stroke="#000000" points="714.717,-676.296 723.926,-671.057 713.46,-669.41 714.717,-676.296"/>
</g>
<!-- sourcefile~test_xdmf_unstructured_contiguous_hyperslabs_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node15" class="node"><title>sourcefile~test_xdmf_unstructured_contiguous_hyperslabs_handler.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node15"><a xlink:href="../sourcefile/test_xdmf_unstructured_contiguous_hyperslabs_handler.f90.html" xlink:title="test_xdmf_unstructured_contiguous_hyperslabs_handler.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="983,-755 682,-755 682,-731 983,-731 983,-755"/>
<text text-anchor="middle" x="832.5" y="-740.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">test_xdmf_unstructured_contiguous_hyperslabs_handler.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_unstructured_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~test_xdmf_unstructured_contiguous_hyperslabs_handler.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge7" class="edge"><title>sourcefile~xdmf_unstructured_contiguous_hyperslab_handler.f90&#45;&gt;sourcefile~test_xdmf_unstructured_contiguous_hyperslabs_handler.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M646.456,-736.072C654.776,-736.383 663.188,-736.698 671.598,-737.013"/>
<polygon fill="#000000" stroke="#000000" points="671.725,-740.52 681.849,-737.397 671.987,-733.525 671.725,-740.52"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_tetrahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node17" class="node"><title>sourcefile~xh5for_dpp_unstructured_tetrahedron.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node17"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_tetrahedron.f90.html" xlink:title="xh5for_dpp_unstructured_tetrahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1629.5,-1158 1417.5,-1158 1417.5,-1134 1629.5,-1134 1629.5,-1158"/>
<text text-anchor="middle" x="1523.5" y="-1143.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_tetrahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_tetrahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge18" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_tetrahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1325.11,-591.445C1329,-669.097 1351.59,-1085.11 1390,-1125 1395.28,-1130.48 1401.36,-1134.9 1407.96,-1138.45"/>
<polygon fill="#000000" stroke="#000000" points="1406.72,-1141.73 1417.26,-1142.76 1409.66,-1135.38 1406.72,-1141.73"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_hexahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node18" class="node"><title>sourcefile~xh5for_dpp_unstructured_hexahedron.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node18"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_hexahedron.f90.html" xlink:title="xh5for_dpp_unstructured_hexahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1630.5,-1116 1416.5,-1116 1416.5,-1092 1630.5,-1092 1630.5,-1116"/>
<text text-anchor="middle" x="1523.5" y="-1101.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_hexahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_hexahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge19" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_hexahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1324.2,-591.289C1322.76,-661.4 1319.26,-1010.25 1390,-1083 1395.02,-1088.16 1400.76,-1092.38 1406.97,-1095.81"/>
<polygon fill="#000000" stroke="#000000" points="1405.84,-1099.15 1416.38,-1100.3 1408.85,-1092.84 1405.84,-1099.15"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_non_static_tetrahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node19" class="node"><title>sourcefile~xh5for_dpp_unstructured_non_static_tetrahedron.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node19"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_non_static_tetrahedron.f90.html" xlink:title="xh5for_dpp_unstructured_non_static_tetrahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1657,-1074 1390,-1074 1390,-1050 1657,-1050 1657,-1074"/>
<text text-anchor="middle" x="1523.5" y="-1059.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_non_static_tetrahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_non_static_tetrahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge20" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_non_static_tetrahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1324.36,-591.127C1323.87,-657.366 1324.95,-974.877 1390,-1041 1390.82,-1041.83 1391.65,-1042.64 1392.5,-1043.42"/>
<polygon fill="#000000" stroke="#000000" points="1390.61,-1046.38 1400.63,-1049.83 1394.95,-1040.89 1390.61,-1046.38"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_static_mixed_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node20" class="node"><title>sourcefile~xh5for_ch_unstructured_static_mixed_series.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node20"><a xlink:href="../sourcefile/xh5for_ch_unstructured_static_mixed_series.f90.html" xlink:title="xh5for_ch_unstructured_static_mixed_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1645.5,-1032 1401.5,-1032 1401.5,-1008 1645.5,-1008 1645.5,-1032"/>
<text text-anchor="middle" x="1523.5" y="-1017.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_static_mixed_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_static_mixed_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge21" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_static_mixed_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1324.55,-591.248C1325.07,-654.077 1330.72,-939.568 1390,-999 1390.97,-999.974 1391.97,-1000.91 1392.99,-1001.82"/>
<polygon fill="#000000" stroke="#000000" points="1391.19,-1004.85 1401.26,-1008.15 1395.45,-999.296 1391.19,-1004.85"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_non_static_tetrahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node21" class="node"><title>sourcefile~xh5for_ch_unstructured_non_static_tetrahedron.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node21"><a xlink:href="../sourcefile/xh5for_ch_unstructured_non_static_tetrahedron.f90.html" xlink:title="xh5for_ch_unstructured_non_static_tetrahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1653.5,-990 1393.5,-990 1393.5,-966 1653.5,-966 1653.5,-990"/>
<text text-anchor="middle" x="1523.5" y="-975.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_non_static_tetrahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_non_static_tetrahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge22" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_non_static_tetrahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1324.78,-591.18C1326.39,-650.02 1336.4,-904.167 1390,-957 1390.96,-957.943 1391.94,-958.854 1392.94,-959.734"/>
<polygon fill="#000000" stroke="#000000" points="1390.97,-962.629 1401.05,-965.892 1395.2,-957.055 1390.97,-962.629"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_quadilateral.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node22" class="node"><title>sourcefile~xh5for_ch_unstructured_quadilateral.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node22"><a xlink:href="../sourcefile/xh5for_ch_unstructured_quadilateral.f90.html" xlink:title="xh5for_ch_unstructured_quadilateral.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1626,-948 1421,-948 1421,-924 1626,-924 1626,-948"/>
<text text-anchor="middle" x="1523.5" y="-933.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_quadilateral.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_quadilateral.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge23" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_quadilateral.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1325.07,-591.271C1327.88,-646.193 1342.11,-868.772 1390,-915 1396.26,-921.046 1403.52,-925.773 1411.35,-929.44"/>
<polygon fill="#000000" stroke="#000000" points="1410.2,-932.749 1420.78,-933.271 1412.83,-926.264 1410.2,-932.749"/>
</g>
<!-- sourcefile~xh5for_dpp_regular_non_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node23" class="node"><title>sourcefile~xh5for_dpp_regular_non_static_grid_series.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node23"><a xlink:href="../sourcefile/xh5for_dpp_regular_non_static_grid_series.f90.html" xlink:title="xh5for_dpp_regular_non_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1642.5,-906 1404.5,-906 1404.5,-882 1642.5,-882 1642.5,-906"/>
<text text-anchor="middle" x="1523.5" y="-891.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_regular_non_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_regular_non_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge24" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_regular_non_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1325.42,-591.077C1329.51,-641.349 1347.7,-833.248 1390,-873 1391.76,-874.652 1393.59,-876.205 1395.49,-877.664"/>
<polygon fill="#000000" stroke="#000000" points="1393.95,-880.841 1404.21,-883.476 1397.83,-875.017 1393.95,-880.841"/>
</g>
<!-- sourcefile~xh5for_ch_regular_grid.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node24" class="node"><title>sourcefile~xh5for_ch_regular_grid.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node24"><a xlink:href="../sourcefile/xh5for_ch_regular_grid.f90.html" xlink:title="xh5for_ch_regular_grid.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1594.5,-864 1452.5,-864 1452.5,-840 1594.5,-840 1594.5,-864"/>
<text text-anchor="middle" x="1523.5" y="-849.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_regular_grid.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_regular_grid.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge25" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_regular_grid.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1325.91,-591.186C1331.47,-636.965 1353.34,-797.74 1390,-831 1404.32,-843.994 1423.29,-850.768 1442.39,-853.991"/>
<polygon fill="#000000" stroke="#000000" points="1441.97,-857.467 1452.36,-855.366 1442.93,-850.533 1441.97,-857.467"/>
</g>
<!-- sourcefile~xh5for_ch_rectilinear_non_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node25" class="node"><title>sourcefile~xh5for_ch_rectilinear_non_static_grid_series.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node25"><a xlink:href="../sourcefile/xh5for_ch_rectilinear_non_static_grid_series.f90.html" xlink:title="xh5for_ch_rectilinear_non_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1645.5,-822 1401.5,-822 1401.5,-798 1645.5,-798 1645.5,-822"/>
<text text-anchor="middle" x="1523.5" y="-807.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_rectilinear_non_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_rectilinear_non_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge26" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_rectilinear_non_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1324.21,-591.042C1324.05,-627.298 1328.89,-736.177 1390,-789 1391.33,-790.152 1392.7,-791.254 1394.1,-792.308"/>
<polygon fill="#000000" stroke="#000000" points="1392.21,-795.251 1402.48,-797.838 1396.07,-789.408 1392.21,-795.251"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_triangles.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node26" class="node"><title>sourcefile~xh5for_ch_unstructured_triangles.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node26"><a xlink:href="../sourcefile/xh5for_ch_unstructured_triangles.f90.html" xlink:title="xh5for_ch_unstructured_triangles.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1618.5,-780 1428.5,-780 1428.5,-756 1618.5,-756 1618.5,-780"/>
<text text-anchor="middle" x="1523.5" y="-765.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_triangles.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_triangles.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge27" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_triangles.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1325.27,-591.093C1327.97,-622.414 1339.78,-706.545 1390,-747 1398.47,-753.824 1408.26,-758.857 1418.61,-762.525"/>
<polygon fill="#000000" stroke="#000000" points="1417.65,-765.894 1428.24,-765.522 1419.73,-759.21 1417.65,-765.894"/>
</g>
<!-- sourcefile~xh5for_ch_regular_non_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node27" class="node"><title>sourcefile~xh5for_ch_regular_non_static_grid_series.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node27"><a xlink:href="../sourcefile/xh5for_ch_regular_non_static_grid_series.f90.html" xlink:title="xh5for_ch_regular_non_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1639,-738 1408,-738 1408,-714 1639,-714 1639,-738"/>
<text text-anchor="middle" x="1523.5" y="-723.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_regular_non_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_regular_non_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge28" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_regular_non_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1326.96,-591.078C1332.87,-616.697 1350.39,-676.466 1390,-705 1392.87,-707.071 1395.88,-708.97 1398.98,-710.71"/>
<polygon fill="#000000" stroke="#000000" points="1397.46,-713.862 1407.96,-715.204 1400.59,-707.601 1397.46,-713.862"/>
</g>
<!-- sourcefile~xh5for_ch_regular_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node28" class="node"><title>sourcefile~xh5for_ch_regular_static_grid_series.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node28"><a xlink:href="../sourcefile/xh5for_ch_regular_static_grid_series.f90.html" xlink:title="xh5for_ch_regular_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1627,-696 1420,-696 1420,-672 1627,-672 1627,-696"/>
<text text-anchor="middle" x="1523.5" y="-681.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_regular_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_regular_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge29" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_regular_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1330.17,-591.094C1339.68,-609.882 1360.69,-645.715 1390,-663 1396.34,-666.742 1403.14,-669.879 1410.19,-672.505"/>
<polygon fill="#000000" stroke="#000000" points="1409.33,-675.91 1419.93,-675.777 1411.56,-669.275 1409.33,-675.91"/>
</g>
<!-- sourcefile~xh5for_dpp_rectilinear_grid.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node29" class="node"><title>sourcefile~xh5for_dpp_rectilinear_grid.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node29"><a xlink:href="../sourcefile/xh5for_dpp_rectilinear_grid.f90.html" xlink:title="xh5for_dpp_rectilinear_grid.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1604,-654 1443,-654 1443,-630 1604,-630 1604,-654"/>
<text text-anchor="middle" x="1523.5" y="-639.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_rectilinear_grid.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_rectilinear_grid.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge30" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_rectilinear_grid.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1339.4,-591.126C1352.09,-600.787 1371.19,-613.84 1390,-621 1403.53,-626.15 1418.3,-630.036 1432.91,-632.97"/>
<polygon fill="#000000" stroke="#000000" points="1432.51,-636.456 1442.98,-634.853 1433.8,-629.575 1432.51,-636.456"/>
</g>
<!-- sourcefile~xh5for_dpp_rectilinear_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node30" class="node"><title>sourcefile~xh5for_dpp_rectilinear_static_grid_series.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node30"><a xlink:href="../sourcefile/xh5for_dpp_rectilinear_static_grid_series.f90.html" xlink:title="xh5for_dpp_rectilinear_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1636.5,-612 1410.5,-612 1410.5,-588 1636.5,-588 1636.5,-612"/>
<text text-anchor="middle" x="1523.5" y="-597.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_rectilinear_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_rectilinear_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge31" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_rectilinear_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1354.14,-582.144C1367.04,-583.512 1383.09,-585.214 1400.12,-587.02"/>
<polygon fill="#000000" stroke="#000000" points="1399.93,-590.52 1410.24,-588.094 1400.67,-583.559 1399.93,-590.52"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_mixedtopology.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node31" class="node"><title>sourcefile~xh5for_dpp_unstructured_mixedtopology.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node31"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_mixedtopology.f90.html" xlink:title="xh5for_dpp_unstructured_mixedtopology.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1636.5,-570 1410.5,-570 1410.5,-546 1636.5,-546 1636.5,-570"/>
<text text-anchor="middle" x="1523.5" y="-555.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_mixedtopology.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_mixedtopology.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge32" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_mixedtopology.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1354.14,-575.856C1367.04,-574.488 1383.09,-572.786 1400.12,-570.98"/>
<polygon fill="#000000" stroke="#000000" points="1400.67,-574.441 1410.24,-569.906 1399.93,-567.48 1400.67,-574.441"/>
</g>
<!-- sourcefile~xh5for_dpp_regular_grid.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node32" class="node"><title>sourcefile~xh5for_dpp_regular_grid.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node32"><a xlink:href="../sourcefile/xh5for_dpp_regular_grid.f90.html" xlink:title="xh5for_dpp_regular_grid.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1597.5,-528 1449.5,-528 1449.5,-504 1597.5,-504 1597.5,-528"/>
<text text-anchor="middle" x="1523.5" y="-513.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_regular_grid.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_regular_grid.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge33" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_regular_grid.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1339.4,-566.874C1352.09,-557.213 1371.19,-544.16 1390,-537 1405.41,-531.134 1422.43,-526.906 1439,-523.86"/>
<polygon fill="#000000" stroke="#000000" points="1439.97,-527.245 1449.23,-522.111 1438.79,-520.345 1439.97,-527.245"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_tetrahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node33" class="node"><title>sourcefile~xh5for_ch_unstructured_tetrahedron.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node33"><a xlink:href="../sourcefile/xh5for_ch_unstructured_tetrahedron.f90.html" xlink:title="xh5for_ch_unstructured_tetrahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1626,-486 1421,-486 1421,-462 1626,-462 1626,-486"/>
<text text-anchor="middle" x="1523.5" y="-471.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_tetrahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_tetrahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge34" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_tetrahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1330.17,-566.906C1339.68,-548.118 1360.69,-512.285 1390,-495 1396.7,-491.048 1403.91,-487.771 1411.38,-485.058"/>
<polygon fill="#000000" stroke="#000000" points="1412.54,-488.358 1420.96,-481.916 1410.36,-481.707 1412.54,-488.358"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_triangles.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node34" class="node"><title>sourcefile~xh5for_dpp_unstructured_triangles.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node34"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_triangles.f90.html" xlink:title="xh5for_dpp_unstructured_triangles.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1622,-444 1425,-444 1425,-420 1622,-420 1622,-444"/>
<text text-anchor="middle" x="1523.5" y="-429.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_triangles.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_triangles.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge35" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_triangles.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1326.96,-566.922C1332.87,-541.303 1350.39,-481.534 1390,-453 1397.71,-447.443 1406.34,-443.124 1415.38,-439.79"/>
<polygon fill="#000000" stroke="#000000" points="1416.53,-443.098 1424.94,-436.661 1414.35,-436.445 1416.53,-443.098"/>
</g>
<!-- sourcefile~xh5for_dpp_regular_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node35" class="node"><title>sourcefile~xh5for_dpp_regular_static_grid_series.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node35"><a xlink:href="../sourcefile/xh5for_dpp_regular_static_grid_series.f90.html" xlink:title="xh5for_dpp_regular_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1630.5,-402 1416.5,-402 1416.5,-378 1630.5,-378 1630.5,-402"/>
<text text-anchor="middle" x="1523.5" y="-387.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_regular_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_regular_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge36" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_regular_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1325.27,-566.907C1327.97,-535.586 1339.78,-451.455 1390,-411 1395.3,-406.73 1401.12,-403.161 1407.27,-400.189"/>
<polygon fill="#000000" stroke="#000000" points="1408.67,-403.397 1416.49,-396.249 1405.92,-396.96 1408.67,-403.397"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_static_tetrahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node36" class="node"><title>sourcefile~xh5for_dpp_unstructured_static_tetrahedron.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node36"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_static_tetrahedron.f90.html" xlink:title="xh5for_dpp_unstructured_static_tetrahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1645,-360 1402,-360 1402,-336 1645,-336 1645,-360"/>
<text text-anchor="middle" x="1523.5" y="-345.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_static_tetrahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_static_tetrahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge37" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_static_tetrahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1324.21,-566.958C1324.05,-530.702 1328.89,-421.823 1390,-369 1391.33,-367.848 1392.7,-366.746 1394.1,-365.692"/>
<polygon fill="#000000" stroke="#000000" points="1396.07,-368.592 1402.48,-360.162 1392.21,-362.749 1396.07,-368.592"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_hexahedron_perf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node37" class="node"><title>sourcefile~xh5for_ch_unstructured_hexahedron_perf.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node37"><a xlink:href="../sourcefile/xh5for_ch_unstructured_hexahedron_perf.f90.html" xlink:title="xh5for_ch_unstructured_hexahedron_perf.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1639.5,-318 1407.5,-318 1407.5,-294 1639.5,-294 1639.5,-318"/>
<text text-anchor="middle" x="1523.5" y="-303.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_hexahedron_perf.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_hexahedron_perf.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge38" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_hexahedron_perf.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1325.91,-566.814C1331.47,-521.035 1353.34,-360.26 1390,-327 1392.71,-324.539 1395.59,-322.301 1398.61,-320.268"/>
<polygon fill="#000000" stroke="#000000" points="1400.6,-323.156 1407.44,-315.066 1397.05,-317.125 1400.6,-323.156"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_static_tetrahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node38" class="node"><title>sourcefile~xh5for_ch_unstructured_static_tetrahedron.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node38"><a xlink:href="../sourcefile/xh5for_ch_unstructured_static_tetrahedron.f90.html" xlink:title="xh5for_ch_unstructured_static_tetrahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1641.5,-276 1405.5,-276 1405.5,-252 1641.5,-252 1641.5,-276"/>
<text text-anchor="middle" x="1523.5" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_static_tetrahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_static_tetrahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge39" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_static_tetrahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1325.42,-566.923C1329.51,-516.651 1347.7,-324.752 1390,-285 1392.19,-282.944 1394.49,-281.042 1396.89,-279.283"/>
<polygon fill="#000000" stroke="#000000" points="1398.87,-282.174 1405.41,-273.841 1395.1,-276.274 1398.87,-282.174"/>
</g>
<!-- sourcefile~xh5for_dpp_rectilinear_non_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node39" class="node"><title>sourcefile~xh5for_dpp_rectilinear_non_static_grid_series.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node39"><a xlink:href="../sourcefile/xh5for_dpp_rectilinear_non_static_grid_series.f90.html" xlink:title="xh5for_dpp_rectilinear_non_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1648.5,-234 1398.5,-234 1398.5,-210 1648.5,-210 1648.5,-234"/>
<text text-anchor="middle" x="1523.5" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_rectilinear_non_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_rectilinear_non_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge40" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_rectilinear_non_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1325.07,-566.729C1327.88,-511.807 1342.11,-289.228 1390,-243 1390.99,-242.045 1392,-241.122 1393.04,-240.232"/>
<polygon fill="#000000" stroke="#000000" points="1395.48,-242.782 1401.42,-234.012 1391.31,-237.16 1395.48,-242.782"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_mixedtopology.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node40" class="node"><title>sourcefile~xh5for_ch_unstructured_mixedtopology.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node40"><a xlink:href="../sourcefile/xh5for_ch_unstructured_mixedtopology.f90.html" xlink:title="xh5for_ch_unstructured_mixedtopology.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1633,-192 1414,-192 1414,-168 1633,-168 1633,-192"/>
<text text-anchor="middle" x="1523.5" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_mixedtopology.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_mixedtopology.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge41" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_mixedtopology.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1324.78,-566.82C1326.39,-507.98 1336.4,-253.833 1390,-201 1394.41,-196.653 1399.33,-192.983 1404.61,-189.895"/>
<polygon fill="#000000" stroke="#000000" points="1406.48,-192.875 1413.82,-185.232 1403.31,-186.631 1406.48,-192.875"/>
</g>
<!-- sourcefile~xh5for_ch_rectilinear_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node41" class="node"><title>sourcefile~xh5for_ch_rectilinear_static_grid_series.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node41"><a xlink:href="../sourcefile/xh5for_ch_rectilinear_static_grid_series.f90.html" xlink:title="xh5for_ch_rectilinear_static_grid_series.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1633.5,-150 1413.5,-150 1413.5,-126 1633.5,-126 1633.5,-150"/>
<text text-anchor="middle" x="1523.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_rectilinear_static_grid_series.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_rectilinear_static_grid_series.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge42" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_rectilinear_static_grid_series.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1324.55,-566.752C1325.07,-503.923 1330.72,-218.432 1390,-159 1394.32,-154.669 1399.15,-151.006 1404.34,-147.919"/>
<polygon fill="#000000" stroke="#000000" points="1406.1,-150.948 1413.38,-143.251 1402.89,-144.728 1406.1,-150.948"/>
</g>
<!-- sourcefile~xh5for_dpp_unstructured_quadilateral.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node42" class="node"><title>sourcefile~xh5for_dpp_unstructured_quadilateral.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node42"><a xlink:href="../sourcefile/xh5for_dpp_unstructured_quadilateral.f90.html" xlink:title="xh5for_dpp_unstructured_quadilateral.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1629.5,-108 1417.5,-108 1417.5,-84 1629.5,-84 1629.5,-108"/>
<text text-anchor="middle" x="1523.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_dpp_unstructured_quadilateral.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_quadilateral.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge43" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_dpp_unstructured_quadilateral.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1324.36,-566.873C1323.87,-500.634 1324.95,-183.123 1390,-117 1395.33,-111.578 1401.46,-107.198 1408.1,-103.681"/>
<polygon fill="#000000" stroke="#000000" points="1409.8,-106.752 1417.43,-99.4054 1406.88,-100.388 1409.8,-106.752"/>
</g>
<!-- sourcefile~xh5for_ch_rectilinear_grid.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node43" class="node"><title>sourcefile~xh5for_ch_rectilinear_grid.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node43"><a xlink:href="../sourcefile/xh5for_ch_rectilinear_grid.f90.html" xlink:title="xh5for_ch_rectilinear_grid.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1600.5,-66 1446.5,-66 1446.5,-42 1600.5,-42 1600.5,-66"/>
<text text-anchor="middle" x="1523.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_rectilinear_grid.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_rectilinear_grid.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge44" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_rectilinear_grid.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1324.2,-566.711C1322.76,-496.6 1319.26,-147.747 1390,-75 1402.28,-62.368 1418.88,-55.368 1436.16,-51.7744"/>
<polygon fill="#000000" stroke="#000000" points="1437.12,-55.1619 1446.39,-50.0354 1435.95,-48.2609 1437.12,-55.1619"/>
</g>
<!-- sourcefile~xh5for_ch_unstructured_hexahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node44" class="node"><title>sourcefile~xh5for_ch_unstructured_hexahedron.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node44"><a xlink:href="../sourcefile/xh5for_ch_unstructured_hexahedron.f90.html" xlink:title="xh5for_ch_unstructured_hexahedron.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="1627,-24 1420,-24 1420,-0 1627,-0 1627,-24"/>
<text text-anchor="middle" x="1523.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">xh5for_ch_unstructured_hexahedron.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_hexahedron.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge45" class="edge"><title>sourcefile~xh5for.f90&#45;&gt;sourcefile~xh5for_ch_unstructured_hexahedron.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M1325.11,-566.555C1329,-488.903 1351.59,-72.8877 1390,-33 1395.98,-26.7898 1403,-21.9365 1410.64,-18.1775"/>
<polygon fill="#000000" stroke="#000000" points="1412.03,-21.3894 1419.86,-14.2516 1409.28,-14.9489 1412.03,-21.3894"/>
</g>
<!-- sourcefile~xdmf_structured_dataset_per_process_handler.f90&#45;&gt;sourcefile~structured_dataset_per_process_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge48" class="edge"><title>sourcefile~xdmf_structured_dataset_per_process_handler.f90&#45;&gt;sourcefile~structured_dataset_per_process_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M548.328,-476.096C590.467,-489.618 656.473,-510.362 682,-516 694.339,-518.725 707.332,-521.169 720.296,-523.34"/>
<polygon fill="#000000" stroke="#000000" points="719.761,-526.799 730.193,-524.948 720.883,-519.89 719.761,-526.799"/>
</g>
<!-- sourcefile~test_xdmf_rectilinear_dataset_per_process.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node47" class="node"><title>sourcefile~test_xdmf_rectilinear_dataset_per_process.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node47"><a xlink:href="../sourcefile/test_xdmf_rectilinear_dataset_per_process.f90.html" xlink:title="test_xdmf_rectilinear_dataset_per_process.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="950.5,-423 714.5,-423 714.5,-399 950.5,-399 950.5,-423"/>
<text text-anchor="middle" x="832.5" y="-408.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">test_xdmf_rectilinear_dataset_per_process.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_structured_dataset_per_process_handler.f90&#45;&gt;sourcefile~test_xdmf_rectilinear_dataset_per_process.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge47" class="edge"><title>sourcefile~xdmf_structured_dataset_per_process_handler.f90&#45;&gt;sourcefile~test_xdmf_rectilinear_dataset_per_process.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M571.424,-452C604.098,-445.686 645.19,-438.026 682,-432 697.744,-429.423 714.452,-426.884 730.777,-424.511"/>
<polygon fill="#000000" stroke="#000000" points="731.48,-427.945 740.879,-423.056 730.482,-421.017 731.48,-427.945"/>
</g>
<!-- sourcefile~test_xdmf_regular_dataset_per_process.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node48" class="node"><title>sourcefile~test_xdmf_regular_dataset_per_process.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node48"><a xlink:href="../sourcefile/test_xdmf_regular_dataset_per_process.f90.html" xlink:title="test_xdmf_regular_dataset_per_process.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="944,-465 721,-465 721,-441 944,-441 944,-465"/>
<text text-anchor="middle" x="832.5" y="-450.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">test_xdmf_regular_dataset_per_process.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_structured_dataset_per_process_handler.f90&#45;&gt;sourcefile~test_xdmf_regular_dataset_per_process.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge49" class="edge"><title>sourcefile~xdmf_structured_dataset_per_process_handler.f90&#45;&gt;sourcefile~test_xdmf_regular_dataset_per_process.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M638.13,-459.637C662.063,-458.815 687.026,-457.959 710.756,-457.144"/>
<polygon fill="#000000" stroke="#000000" points="710.97,-460.639 720.844,-456.798 710.73,-453.643 710.97,-460.639"/>
</g>
<!-- sourcefile~xdmf_unstructured_dataset_per_process_handler.f90&#45;&gt;sourcefile~unstructured_dataset_per_process_factory.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge50" class="edge"><title>sourcefile~xdmf_unstructured_dataset_per_process_handler.f90&#45;&gt;sourcefile~unstructured_dataset_per_process_factory.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M576.686,-540.064C608.455,-545.761 647.167,-552.5 682,-558 698.079,-560.539 715.157,-563.082 731.801,-565.478"/>
<polygon fill="#000000" stroke="#000000" points="731.701,-568.999 742.095,-566.949 732.691,-562.07 731.701,-568.999"/>
</g>
<!-- sourcefile~test_xdmf_unstructured_dataset_per_process.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_node49" class="node"><title>sourcefile~test_xdmf_unstructured_dataset_per_process.f90</title>
<g id="a_sourcefile~~xdmf_handler.f90~~AfferentGraph_node49"><a xlink:href="../sourcefile/test_xdmf_unstructured_dataset_per_process.f90.html" xlink:title="test_xdmf_unstructured_dataset_per_process.f90">
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="957.5,-507 707.5,-507 707.5,-483 957.5,-483 957.5,-507"/>
<text text-anchor="middle" x="832.5" y="-492.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">test_xdmf_unstructured_dataset_per_process.f90</text>
</a>
</g>
</g>
<!-- sourcefile~xdmf_unstructured_dataset_per_process_handler.f90&#45;&gt;sourcefile~test_xdmf_unstructured_dataset_per_process.f90 -->
<g id="sourcefile~~xdmf_handler.f90~~AfferentGraph_edge51" class="edge"><title>sourcefile~xdmf_unstructured_dataset_per_process_handler.f90&#45;&gt;sourcefile~test_xdmf_unstructured_dataset_per_process.f90</title>
<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M627.614,-515.993C652.659,-513.414 679.242,-510.677 704.653,-508.061"/>
<polygon fill="#000000" stroke="#000000" points="705.115,-511.532 714.704,-507.026 704.398,-504.569 705.115,-511.532"/>
</g>
</g>
</svg>
</div>
                <script>var pansourcefilexdmf_handlerf90AfferentGraph = svgPanZoom('#sourcefilexdmf_handlerf90AfferentGraph', {
                    zoomEnabled: true,
                    controlIconsEnabled: true,
                    fit: true,
                    center: true,});
                    </script>
                <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div>
                <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog">
                  <div class="modal-dialog modal-lg" role="document">
                    <div class="modal-content">
                      <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                        <h4 class="modal-title" id="-graph-help-label">Graph Key</h4>
                      </div>
                      <div class="modal-body">
                        
    <p>Nodes of different colours represent the following: </p>
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
 -->
<!-- Title: Graph Key Pages: 1 -->
<svg width="190pt" height="32pt"
 viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)">
<title>Graph Key</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/>
<!-- Source File -->
<g id="node1" class="node"><title>Source File</title>
<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/>
<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text>
</g>
<!-- This Page&#39;s Entity -->
<g id="node2" class="node"><title>This Page&#39;s Entity</title>
<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/>
<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page&#39;s Entity</text>
</g>
</g>
</svg>

    
    <p>Solid arrows point from a file to a file which depends upon it. A file 
    is dependent upon another if the latter must be compiled before the former
    can be.
    </p>
    
                      </div>
                    </div>
                  </div>
                </div>
                
      
      <br>

    <section class="visible-xs visible-sm hidden-md">
      






<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-1">Modules</a></h3></div>
  <div id="mods-1" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../module/xdmf_handler.html">xdmf_handler</a>
      
    </div>
  </div>
</div>















<div class="panel panel-primary">
  <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div>
  <div class="list-group">
    <a class="list-group-item" href="../sourcefile/xdmf_handler.f90.html#src">xdmf_handler.f90</a>
  </div>
</div>


    </section>
    <br class="visible-xs visible-sm hidden-md">

    <section>
      <h2><span class="anchor" id="src"></span>Source Code</h2>
    <div class="hl"><pre><a name="ln-1"></a><span class="k">module </span><span class="n">xdmf_handler</span>
<a name="ln-2"></a><span class="c">!--------------------------------------------------------------------- -----------------------------------------------------------</span>
<a name="ln-3"></a><span class="c">!&lt; XdmfHdf5Fortran: XDMF parallel partitioned mesh I/O on top of HDF5</span>
<a name="ln-4"></a><span class="c">!&lt; XDMF File handling module</span>
<a name="ln-5"></a><span class="c">!--------------------------------------------------------------------- -----------------------------------------------------------</span>
<a name="ln-6"></a>
<a name="ln-7"></a><span class="k">use </span><span class="n">xh5for_utils</span>
<a name="ln-8"></a><span class="k">use </span><span class="n">xh5for_parameters</span>
<a name="ln-9"></a><span class="k">use </span><span class="n">PENF</span><span class="p">,</span>         <span class="n">only</span> <span class="p">:</span> <span class="n">I4P</span><span class="p">,</span> <span class="n">I8P</span><span class="p">,</span> <span class="n">R4P</span><span class="p">,</span> <span class="n">R8P</span><span class="p">,</span> <span class="n">str</span>
<a name="ln-10"></a><span class="k">use </span><span class="n">fox_xdmf</span>
<a name="ln-11"></a><span class="k">use </span><span class="n">fox_dom</span><span class="p">,</span>      <span class="n">only</span><span class="p">:</span> <span class="n">Node</span><span class="p">,</span> <span class="n">NodeList</span><span class="p">,</span> <span class="n">GetDocumentElement</span><span class="p">,</span> <span class="n">Item</span><span class="p">,</span> <span class="n">GetLength</span><span class="p">,</span> <span class="n">GetChildNodes</span><span class="p">,</span> <span class="n">getAttribute</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-12"></a>                        <span class="n">HasChildNodes</span><span class="p">,</span> <span class="n">GetElementsByTagName</span><span class="p">,</span> <span class="n">GetNodeType</span><span class="p">,</span> <span class="n">GetTagName</span><span class="p">,</span> <span class="n">Destroy</span><span class="p">,</span> <span class="n">getTextContent</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-13"></a>                        <span class="n">TEXT_NODE</span><span class="p">,</span> <span class="n">DOCUMENT_NODE</span>
<a name="ln-14"></a><span class="k">use </span><span class="n">mpi_environment</span>
<a name="ln-15"></a><span class="k">use </span><span class="n">steps_handler</span>
<a name="ln-16"></a><span class="k">use </span><span class="n">spatial_grid_descriptor</span>
<a name="ln-17"></a><span class="k">use </span><span class="n">uniform_grid_descriptor</span>
<a name="ln-18"></a>
<a name="ln-19"></a><span class="k">implicit none</span>
<a name="ln-20"></a>
<a name="ln-21"></a><span class="cp">#include &quot;assert.i90&quot;</span>
<a name="ln-22"></a>
<a name="ln-23"></a><span class="k">private</span>
<a name="ln-24"></a>
<a name="ln-25"></a><span class="k">    </span><span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span> <span class="k">parameter</span> <span class="kd">::</span> <span class="n">XDMF_HANDLER_STATE_START</span>   <span class="o">=</span> <span class="mi">0</span>
<a name="ln-26"></a>    <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span> <span class="k">parameter</span> <span class="kd">::</span> <span class="n">XDMF_HANDLER_STATE_INIT</span>    <span class="o">=</span> <span class="mi">1</span>
<a name="ln-27"></a>
<a name="ln-28"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-29"></a>    <span class="c">! XDMF_HANDLER State Transition Diagram</span>
<a name="ln-30"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-31"></a>    <span class="c">! - This diagram controls the basic life cycle of the XDMF_HANDLER</span>
<a name="ln-32"></a>    <span class="c">! - After initialization, calls to almost all procedures are allowed</span>
<a name="ln-33"></a>    <span class="c">! - The state diagram is really simple. Most of the checks also</span>
<a name="ln-34"></a>    <span class="c">!   realies in the allocation status of the file prefix and in the </span>
<a name="ln-35"></a>    <span class="c">!   Action status. Writing/Reading operations are mutually exclusive</span>
<a name="ln-36"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-37"></a>    <span class="c">!       INIT STATE      |     ACTION      |      FINAL STATE</span>
<a name="ln-38"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-39"></a>    <span class="c">! START                 | Free            | START</span>
<a name="ln-40"></a>    <span class="c">! START                 | Initialize      | INIT</span>
<a name="ln-41"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-42"></a>    <span class="c">! INIT                  | Free            | START</span>
<a name="ln-43"></a>    <span class="c">! INIT                  | Initialize      | INIT</span>
<a name="ln-44"></a>
<a name="ln-45"></a>
<a name="ln-46"></a>    <span class="k">type</span><span class="p">,</span> <span class="k">abstract</span> <span class="kd">::</span> <span class="n">xdmf_handler_t</span>
<a name="ln-47"></a>    <span class="k">private</span>
<a name="ln-48"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-49"></a>    <span class="c">!&lt; XDMF handler abstract type</span>
<a name="ln-50"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-51"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=</span><span class="p">:),</span>             <span class="k">allocatable</span> <span class="kd">::</span> <span class="n">Prefix</span>                          <span class="c">!&lt; Name prefix of the XDMF file</span>
<a name="ln-52"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=</span><span class="p">:),</span>             <span class="k">allocatable</span> <span class="kd">::</span> <span class="n">Path</span>                            <span class="c">!&lt; Root path</span>
<a name="ln-53"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_file_t</span><span class="p">)</span>                         <span class="kd">::</span> <span class="n">TemporalFile</span>                    <span class="c">!&lt; XDMF file handler for temporal collections</span>
<a name="ln-54"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_file_t</span><span class="p">)</span>                         <span class="kd">::</span> <span class="n">SpatialFile</span>                     <span class="c">!&lt; XDMF file handler for spatial collections</span>
<a name="ln-55"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                              <span class="kd">::</span> <span class="n">Action</span><span class="o">=</span> <span class="n">XDMF_NO_VALUE</span>           <span class="c">!&lt; XDMF purpose (Read or Write)</span>
<a name="ln-56"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                              <span class="kd">::</span> <span class="n">State</span> <span class="o">=</span> <span class="n">XDMF_HANDLER_STATE_START</span><span class="c">!&lt; XDMF purpose (Read or Write)</span>
<a name="ln-57"></a>        <span class="k">type</span><span class="p">(</span><span class="n">steps_handler_t</span><span class="p">),</span>            <span class="k">pointer</span> <span class="kd">::</span> <span class="n">StepsHandler</span>          <span class="o">=&gt;</span> <span class="nb">null</span><span class="p">()</span> <span class="c">!&lt; Steps handler</span>
<a name="ln-58"></a>        <span class="k">type</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                  <span class="k">pointer</span> <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="nb">null</span><span class="p">()</span> <span class="c">!&lt; MPI environment </span>
<a name="ln-59"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span> <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="nb">null</span><span class="p">()</span> <span class="c">!&lt; Global grid info</span>
<a name="ln-60"></a>        <span class="k">class</span><span class="p">(</span><span class="n">uniform_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span> <span class="kd">::</span> <span class="n">UniformGridDescriptor</span> <span class="o">=&gt;</span> <span class="nb">null</span><span class="p">()</span> <span class="c">!&lt; Local grid info</span>
<a name="ln-61"></a>    <span class="k">contains</span>
<a name="ln-62"></a><span class="k">    private</span>
<a name="ln-63"></a>        <span class="c">! Deferred procedures</span>
<a name="ln-64"></a>        <span class="k">procedure</span><span class="p">(</span><span class="n">xdmf_handler_SetTopology_I4P</span><span class="p">),</span>         <span class="k">deferred</span> <span class="kd">::</span> <span class="n">SetTopology_I4P</span>
<a name="ln-65"></a>        <span class="k">procedure</span><span class="p">(</span><span class="n">xdmf_handler_SetTopology_I8P</span><span class="p">),</span>         <span class="k">deferred</span> <span class="kd">::</span> <span class="n">SetTopology_I8P</span>
<a name="ln-66"></a>        <span class="k">procedure</span><span class="p">(</span><span class="n">xdmf_handler_WriteGeometry</span><span class="p">),</span>           <span class="k">deferred</span> <span class="kd">::</span> <span class="n">WriteGeometry</span>
<a name="ln-67"></a>        <span class="k">procedure</span><span class="p">(</span><span class="n">xdmf_handler_WriteTopology</span><span class="p">),</span>           <span class="k">deferred</span> <span class="kd">::</span> <span class="n">WriteTopology</span>
<a name="ln-68"></a>        <span class="k">procedure</span><span class="p">(</span><span class="n">xdmf_handler_WriteAttributes</span><span class="p">),</span>         <span class="k">deferred</span> <span class="kd">::</span> <span class="n">WriteAttributes</span>
<a name="ln-69"></a>        <span class="k">procedure</span><span class="p">(</span><span class="n">xdmf_handler_FillSpatialGridTopology</span><span class="p">),</span> <span class="k">deferred</span> <span class="kd">::</span> <span class="n">FillSpatialGridTopology</span>
<a name="ln-70"></a>
<a name="ln-71"></a>        <span class="c">! Return components</span>
<a name="ln-72"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">GetSpatialFileXMLHandler</span>     <span class="o">=&gt;</span> <span class="n">xdmf_handler_GetSpatialFileXMLHandler</span>
<a name="ln-73"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">GetStepsHandler</span>              <span class="o">=&gt;</span> <span class="n">xdmf_handler_GetStepsHandler</span>
<a name="ln-74"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">GetMPIEnvironment</span>            <span class="o">=&gt;</span> <span class="n">xdmf_handler_GetMPIEnvironment</span>
<a name="ln-75"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">GetUniformGridDescriptor</span>     <span class="o">=&gt;</span> <span class="n">xdmf_handler_GetUniformGridDescriptor</span>
<a name="ln-76"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">GetSpatialGridDescriptor</span>     <span class="o">=&gt;</span> <span class="n">xdmf_handler_GetSpatialGridDescriptor</span>
<a name="ln-77"></a>        
<a name="ln-78"></a>
<a name="ln-79"></a>        <span class="c">! XDMF Handler initialization/finalization procedures</span>
<a name="ln-80"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">Initialize</span>                   <span class="o">=&gt;</span> <span class="n">xdmf_handler_Initialize</span>
<a name="ln-81"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="k">Open</span>                         <span class="o">=&gt;</span> <span class="n">xdmf_handler_Open</span>
<a name="ln-82"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">Clean</span>                        <span class="o">=&gt;</span> <span class="n">xdmf_handler_Clean</span>
<a name="ln-83"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">Free</span>                         <span class="o">=&gt;</span> <span class="n">xdmf_handler_Free</span>
<a name="ln-84"></a>
<a name="ln-85"></a>        <span class="c">! File name related functions </span>
<a name="ln-86"></a>        <span class="k">procedure</span>         <span class="kd">::</span> <span class="n">HasPrefix</span>                    <span class="o">=&gt;</span> <span class="n">xdmf_handler_HasPrefix</span>
<a name="ln-87"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">GetHDF5Filename</span>              <span class="o">=&gt;</span> <span class="n">xdmf_handler_GetHDF5Filename</span>
<a name="ln-88"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">GetSpatialFilename</span>           <span class="o">=&gt;</span> <span class="n">xdmf_handler_GetSpatialFilename</span>
<a name="ln-89"></a>
<a name="ln-90"></a>        <span class="c">! File IO procedures</span>
<a name="ln-91"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">OpenSpatialFile</span>              <span class="o">=&gt;</span> <span class="n">xdmf_handler_OpenSpatialFile</span>
<a name="ln-92"></a>        <span class="k">procedure</span>         <span class="kd">::</span> <span class="n">OpenSpatialGrid</span>              <span class="o">=&gt;</span> <span class="n">xdmf_handler_OpenSpatialGrid</span>
<a name="ln-93"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">SerializeSpatialFile</span>         <span class="o">=&gt;</span> <span class="n">xdmf_handler_SerializeSpatialFile</span>
<a name="ln-94"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">IsSpatialFileSerialized</span>      <span class="o">=&gt;</span> <span class="n">xdmf_handler_IsSpatialFileSerialized</span>
<a name="ln-95"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">SerializeTemporalFile</span>        <span class="o">=&gt;</span> <span class="n">xdmf_handler_SerializeTemporalFile</span>
<a name="ln-96"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">ParseTemporalFile</span>            <span class="o">=&gt;</span> <span class="n">xdmf_handler_ParseTemporalFile</span>
<a name="ln-97"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">ParseSpatialFile</span>             <span class="o">=&gt;</span> <span class="n">xdmf_handler_ParseSpatialFile</span>
<a name="ln-98"></a>        <span class="k">procedure</span>         <span class="kd">::</span> <span class="n">CloseSpatialGrid</span>             <span class="o">=&gt;</span> <span class="n">xdmf_handler_CloseSpatialGrid</span>
<a name="ln-99"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">CloseSpatialFile</span>             <span class="o">=&gt;</span> <span class="n">xdmf_handler_CloseSpatialFile</span>
<a name="ln-100"></a>
<a name="ln-101"></a>        <span class="c">! XML DOM aux procedures for parsing XDMF</span>
<a name="ln-102"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">GetUniqueNodeByTag</span>           <span class="o">=&gt;</span> <span class="n">xdmf_handler_GetUniqueNodeByTag</span>
<a name="ln-103"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">GetFirstChildByTag</span>           <span class="o">=&gt;</span> <span class="n">xdmf_handler_GetFirstChildByTag</span>
<a name="ln-104"></a>        <span class="k">procedure</span>         <span class="kd">::</span> <span class="n">GetDataItemXPath</span>             <span class="o">=&gt;</span> <span class="n">xdmf_handler_GetDataItemXPath</span>
<a name="ln-105"></a>        <span class="k">procedure</span>         <span class="kd">::</span> <span class="n">FillSpatialGridGeometry</span>      <span class="o">=&gt;</span> <span class="n">xdmf_handler_FillSpatialGridGeometry</span>
<a name="ln-106"></a>        <span class="k">procedure</span>         <span class="kd">::</span> <span class="n">FillSpatialGridDescriptor</span>    <span class="o">=&gt;</span> <span class="n">xdmf_handler_FillSpatialGridDescriptor</span>
<a name="ln-107"></a>
<a name="ln-108"></a>        <span class="c">! Metadata storing procedures</span>
<a name="ln-109"></a>        <span class="k">procedure</span>         <span class="kd">::</span> <span class="n">SetGeometry_R4P</span>              <span class="o">=&gt;</span> <span class="n">xdmf_handler_SetGeometry_R4P</span>
<a name="ln-110"></a>        <span class="k">procedure</span>         <span class="kd">::</span> <span class="n">SetGeometry_R8P</span>              <span class="o">=&gt;</span> <span class="n">xdmf_handler_SetGeometry_R8P</span>
<a name="ln-111"></a>        <span class="k">procedure</span>         <span class="kd">::</span> <span class="n">AppendAttribute_I4P</span>          <span class="o">=&gt;</span> <span class="n">xdmf_handler_AppendAttribute_I4P</span>
<a name="ln-112"></a>        <span class="k">procedure</span>         <span class="kd">::</span> <span class="n">AppendAttribute_I8P</span>          <span class="o">=&gt;</span> <span class="n">xdmf_handler_AppendAttribute_I8P</span>
<a name="ln-113"></a>        <span class="k">procedure</span>         <span class="kd">::</span> <span class="n">AppendAttribute_R4P</span>          <span class="o">=&gt;</span> <span class="n">xdmf_handler_AppendAttribute_R4P</span>
<a name="ln-114"></a>        <span class="k">procedure</span>         <span class="kd">::</span> <span class="n">AppendAttribute_R8P</span>          <span class="o">=&gt;</span> <span class="n">xdmf_handler_AppendAttribute_R8P</span>
<a name="ln-115"></a>        <span class="k">procedure</span><span class="p">,</span> <span class="k">public</span> <span class="kd">::</span> <span class="n">CalculateAttributeDimensions</span> <span class="o">=&gt;</span> <span class="n">xdmf_handler_CalculateAttributeDimensions</span>
<a name="ln-116"></a>
<a name="ln-117"></a>        <span class="k">generic</span><span class="p">,</span>   <span class="k">public</span> <span class="kd">::</span> <span class="n">SetGeometry</span>                  <span class="o">=&gt;</span> <span class="n">SetGeometry_R4P</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-118"></a>                                                             <span class="n">SetGeometry_R8P</span>
<a name="ln-119"></a>        <span class="k">generic</span><span class="p">,</span>   <span class="k">public</span> <span class="kd">::</span> <span class="n">SetTopology</span>                  <span class="o">=&gt;</span> <span class="n">SetTopology_I4P</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-120"></a>                                                             <span class="n">SetTopology_I8P</span>
<a name="ln-121"></a>        <span class="k">generic</span><span class="p">,</span>   <span class="k">public</span> <span class="kd">::</span> <span class="n">AppendAttribute</span>              <span class="o">=&gt;</span> <span class="n">AppendAttribute_I4P</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-122"></a>                                                             <span class="n">AppendAttribute_I8P</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-123"></a>                                                             <span class="n">AppendAttribute_R4P</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-124"></a>                                                             <span class="n">AppendAttribute_R8P</span>
<a name="ln-125"></a>    <span class="k">end type </span><span class="n">xdmf_handler_t</span>
<a name="ln-126"></a>
<a name="ln-127"></a>    <span class="k">abstract interface</span>
<a name="ln-128"></a><span class="k">        subroutine </span><span class="n">xdmf_handler_SetTopology_I4P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connectivities</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-129"></a>            <span class="k">import </span><span class="n">xdmf_handler_t</span>
<a name="ln-130"></a>            <span class="k">import </span><span class="n">I4P</span>
<a name="ln-131"></a>            <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>
<a name="ln-132"></a>            <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Connectivities</span><span class="p">(:)</span>
<a name="ln-133"></a>            <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>      <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Name</span>
<a name="ln-134"></a>        <span class="k">end subroutine </span><span class="n">xdmf_handler_SetTopology_I4P</span>
<a name="ln-135"></a>
<a name="ln-136"></a>        <span class="k">subroutine </span><span class="n">xdmf_handler_SetTopology_I8P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connectivities</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-137"></a>            <span class="k">import </span><span class="n">xdmf_handler_t</span>
<a name="ln-138"></a>            <span class="k">import </span><span class="n">I8P</span>
<a name="ln-139"></a>            <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>
<a name="ln-140"></a>            <span class="kt">integer</span><span class="p">(</span><span class="n">I8P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Connectivities</span><span class="p">(:)</span>
<a name="ln-141"></a>            <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>      <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Name</span>
<a name="ln-142"></a>        <span class="k">end subroutine </span><span class="n">xdmf_handler_SetTopology_I8P</span>
<a name="ln-143"></a>
<a name="ln-144"></a>        <span class="k">subroutine </span><span class="n">xdmf_handler_WriteGeometry</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">GridID</span><span class="p">)</span>
<a name="ln-145"></a>            <span class="k">import </span><span class="n">I4P</span>
<a name="ln-146"></a>            <span class="k">import </span><span class="n">xdmf_handler_t</span>
<a name="ln-147"></a>            <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>
<a name="ln-148"></a>            <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">GridID</span>
<a name="ln-149"></a>        <span class="k">end subroutine </span><span class="n">xdmf_handler_WriteGeometry</span>
<a name="ln-150"></a>
<a name="ln-151"></a>        <span class="k">subroutine </span><span class="n">xdmf_handler_WriteTopology</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">GridID</span><span class="p">)</span>
<a name="ln-152"></a>            <span class="k">import </span><span class="n">I4P</span>
<a name="ln-153"></a>            <span class="k">import </span><span class="n">xdmf_handler_t</span>
<a name="ln-154"></a>            <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>
<a name="ln-155"></a>            <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">GridID</span>
<a name="ln-156"></a>        <span class="k">end subroutine </span><span class="n">xdmf_handler_WriteTopology</span>
<a name="ln-157"></a>
<a name="ln-158"></a>        <span class="k">subroutine </span><span class="n">xdmf_handler_WriteAttributes</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">GridID</span><span class="p">)</span>
<a name="ln-159"></a>            <span class="k">import </span><span class="n">I4P</span>
<a name="ln-160"></a>            <span class="k">import </span><span class="n">xdmf_handler_t</span>
<a name="ln-161"></a>            <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>
<a name="ln-162"></a>            <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">GridID</span>
<a name="ln-163"></a>        <span class="k">end subroutine </span><span class="n">xdmf_handler_WriteAttributes</span>
<a name="ln-164"></a>
<a name="ln-165"></a>        <span class="k">subroutine </span><span class="n">xdmf_handler_FillSpatialGridTopology</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">TopologyNode</span><span class="p">,</span> <span class="n">ID</span><span class="p">)</span>
<a name="ln-166"></a>            <span class="k">import </span><span class="n">I4P</span>
<a name="ln-167"></a>            <span class="k">import </span><span class="n">Node</span>
<a name="ln-168"></a>            <span class="k">import </span><span class="n">xdmf_handler_t</span>
<a name="ln-169"></a>            <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>
<a name="ln-170"></a>            <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span> <span class="k">pointer</span><span class="p">,</span>   <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">TopologyNode</span>
<a name="ln-171"></a>            <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">ID</span>
<a name="ln-172"></a>        <span class="k">end subroutine </span><span class="n">xdmf_handler_FillSpatialGridTopology</span>
<a name="ln-173"></a>    <span class="k">end interface</span>
<a name="ln-174"></a>
<a name="ln-175"></a>
<a name="ln-176"></a><span class="k">public</span> <span class="kd">::</span> <span class="n">xdmf_handler_t</span>
<a name="ln-177"></a>
<a name="ln-178"></a><span class="k">contains</span>
<a name="ln-179"></a>
<a name="ln-180"></a><span class="k">    subroutine </span><span class="n">xdmf_handler_Initialize</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">MPIEnvironment</span><span class="p">,</span> <span class="n">StepsHandler</span><span class="p">,</span> <span class="n">UniformGridDescriptor</span><span class="p">,</span> <span class="n">SpatialGridDescriptor</span><span class="p">,</span> <span class="n">Fileprefix</span><span class="p">,</span> <span class="n">Path</span><span class="p">,</span> <span class="n">Action</span><span class="p">)</span>
<a name="ln-181"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-182"></a>    <span class="c">!&lt; XDMF file handler initialization procedure</span>
<a name="ln-183"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-184"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>                    <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XMDF handler</span>
<a name="ln-185"></a>        <span class="k">type</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span>                  <span class="k">target</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">MPIEnvironment</span>        <span class="c">!&lt; MPI environment</span>
<a name="ln-186"></a>        <span class="k">type</span><span class="p">(</span><span class="n">steps_handler_t</span><span class="p">),</span>            <span class="k">target</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">StepsHandler</span>          <span class="c">!&lt; Steps handler</span>
<a name="ln-187"></a>        <span class="k">class</span><span class="p">(</span><span class="n">uniform_grid_descriptor_t</span><span class="p">),</span> <span class="k">target</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">UniformGridDescriptor</span> <span class="c">!&lt; Local grid info</span>
<a name="ln-188"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">target</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Global grid info</span>
<a name="ln-189"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span> <span class="k">optional</span><span class="p">,</span>               <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">FilePrefix</span>            <span class="c">!&lt; XDMF filename prefix</span>
<a name="ln-190"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span> <span class="k">optional</span><span class="p">,</span>               <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Path</span>                  <span class="c">!&lt; Root path</span>
<a name="ln-191"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>     <span class="k">optional</span><span class="p">,</span>               <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Action</span>                <span class="c">!&lt; XDMF action to be performed (Read or Write)</span>
<a name="ln-192"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-193"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">Free</span><span class="p">()</span>
<a name="ln-194"></a>        <span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span>        <span class="o">=&gt;</span> <span class="n">MPIEnvironment</span>
<a name="ln-195"></a>        <span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span>          <span class="o">=&gt;</span> <span class="n">StepsHandler</span>
<a name="ln-196"></a>        <span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">SpatialGridDescriptor</span>
<a name="ln-197"></a>        <span class="n">this</span><span class="p">%</span><span class="n">UniformGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">UniformGridDescriptor</span>
<a name="ln-198"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="k">Open</span><span class="p">(</span><span class="n">FilePrefix</span><span class="p">,</span> <span class="n">Path</span><span class="p">,</span> <span class="n">Action</span><span class="p">)</span>
<a name="ln-199"></a>        <span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">=</span> <span class="n">XDMF_HANDLER_STATE_INIT</span>
<a name="ln-200"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_Initialize</span>
<a name="ln-201"></a>
<a name="ln-202"></a>
<a name="ln-203"></a>    <span class="k">function </span><span class="n">xdmf_handler_GetSpatialFileXMLHandler</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> <span class="k">result</span><span class="p">(</span><span class="n">XMLHandler</span><span class="p">)</span>
<a name="ln-204"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-205"></a>    <span class="c">!&lt; Return a pointer to the UniformGridDescriptor</span>
<a name="ln-206"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-207"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">target</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>             <span class="c">!&lt; XDMF handler type</span>
<a name="ln-208"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xmlf_t</span><span class="p">),</span>          <span class="k">pointer</span>            <span class="kd">::</span> <span class="n">XMLHandler</span>       <span class="c">!&lt; !&lt; FoX SAX XML File handler</span>
<a name="ln-209"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-210"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">XMLHandler</span><span class="p">)</span>
<a name="ln-211"></a>        <span class="n">XMLHandler</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">xml_handler</span>
<a name="ln-212"></a>    <span class="k">end function </span><span class="n">xdmf_handler_GetSpatialFileXMLHandler</span>
<a name="ln-213"></a>
<a name="ln-214"></a>
<a name="ln-215"></a>    <span class="k">function </span><span class="n">xdmf_handler_GetStepsHandler</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> <span class="k">result</span><span class="p">(</span><span class="n">StepsHandler</span><span class="p">)</span>
<a name="ln-216"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-217"></a>    <span class="c">!&lt; Return a pointer to the UniformGridDescriptor</span>
<a name="ln-218"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-219"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>         <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>             <span class="c">!&lt; XDMF handler type</span>
<a name="ln-220"></a>        <span class="k">type</span><span class="p">(</span><span class="n">steps_handler_t</span><span class="p">),</span> <span class="k">pointer</span>            <span class="kd">::</span> <span class="n">StepsHandler</span>     <span class="c">!&lt; Steps handler</span>
<a name="ln-221"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-222"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">StepsHandler</span><span class="p">)</span>
<a name="ln-223"></a>        <span class="n">StepsHandler</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span>
<a name="ln-224"></a>    <span class="k">end function </span><span class="n">xdmf_handler_GetStepsHandler</span>
<a name="ln-225"></a>
<a name="ln-226"></a>
<a name="ln-227"></a>    <span class="k">function </span><span class="n">xdmf_handler_GetMPIEnvironment</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> <span class="k">result</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">)</span>
<a name="ln-228"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-229"></a>    <span class="c">!&lt; Return a pointer to the MPIEnvironment</span>
<a name="ln-230"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-231"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                     <span class="c">!&lt; XDMF handler type</span>
<a name="ln-232"></a>        <span class="k">type</span><span class="p">(</span><span class="n">mpi_env_t</span><span class="p">),</span> <span class="k">pointer</span>          <span class="kd">::</span> <span class="n">MPIEnvironment</span>           <span class="c">!&lt; MPI Environment</span>
<a name="ln-233"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-234"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">MPIEnvironment</span><span class="p">)</span>
<a name="ln-235"></a>        <span class="n">MPIEnvironment</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span>
<a name="ln-236"></a>    <span class="k">end function </span><span class="n">xdmf_handler_GetMPIEnvironment</span>
<a name="ln-237"></a>
<a name="ln-238"></a>
<a name="ln-239"></a>    <span class="k">function </span><span class="n">xdmf_handler_GetUniformGridDescriptor</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> <span class="k">result</span><span class="p">(</span><span class="n">UniformGridDescriptor</span><span class="p">)</span>
<a name="ln-240"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-241"></a>    <span class="c">!&lt; Return a pointer to the UniformGridDescriptor</span>
<a name="ln-242"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-243"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>         <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler type</span>
<a name="ln-244"></a>        <span class="k">class</span><span class="p">(</span><span class="n">uniform_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span> <span class="kd">::</span> <span class="n">UniformGridDescriptor</span> <span class="c">!&lt; Uniform grid descriptor</span>
<a name="ln-245"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-246"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">UniformGridDescriptor</span><span class="p">)</span>
<a name="ln-247"></a>        <span class="n">UniformGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">UniformGridDescriptor</span>
<a name="ln-248"></a>    <span class="k">end function </span><span class="n">xdmf_handler_GetUniformGridDescriptor</span>
<a name="ln-249"></a>
<a name="ln-250"></a>
<a name="ln-251"></a>    <span class="k">function </span><span class="n">xdmf_handler_GetSpatialGridDescriptor</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> <span class="k">result</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span>
<a name="ln-252"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-253"></a>    <span class="c">!&lt; Return a pointer to the SpatialGridDescriptor</span>
<a name="ln-254"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-255"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>         <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler type</span>
<a name="ln-256"></a>        <span class="k">class</span><span class="p">(</span><span class="n">spatial_grid_descriptor_t</span><span class="p">),</span> <span class="k">pointer</span> <span class="kd">::</span> <span class="n">SpatialGridDescriptor</span> <span class="c">!&lt; Uniform grid descriptor</span>
<a name="ln-257"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-258"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span>
<a name="ln-259"></a>        <span class="n">SpatialGridDescriptor</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span>
<a name="ln-260"></a>    <span class="k">end function </span><span class="n">xdmf_handler_GetSpatialGridDescriptor</span>
<a name="ln-261"></a>
<a name="ln-262"></a>
<a name="ln-263"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_Clean</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
<a name="ln-264"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-265"></a>    <span class="c">!&lt; Free XDMF file handler</span>
<a name="ln-266"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-267"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XMDF handler</span>
<a name="ln-268"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-269"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">Free</span><span class="p">()</span>
<a name="ln-270"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">Free</span><span class="p">()</span>
<a name="ln-271"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_Clean</span>
<a name="ln-272"></a>
<a name="ln-273"></a>
<a name="ln-274"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_Free</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
<a name="ln-275"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-276"></a>    <span class="c">!&lt; Free XDMF file handler</span>
<a name="ln-277"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-278"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XMDF handler</span>
<a name="ln-279"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-280"></a>        <span class="k">if</span><span class="p">(</span><span class="nb">allocated</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">prefix</span><span class="p">))</span> <span class="k">deallocate</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">prefix</span><span class="p">)</span>
<a name="ln-281"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">Free</span><span class="p">()</span>
<a name="ln-282"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">Free</span><span class="p">()</span>
<a name="ln-283"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">)</span>
<a name="ln-284"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">)</span>
<a name="ln-285"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">)</span>
<a name="ln-286"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">UniformGridDescriptor</span><span class="p">)</span>
<a name="ln-287"></a>        <span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">=</span> <span class="n">XDMF_HANDLER_STATE_START</span>
<a name="ln-288"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_Free</span>
<a name="ln-289"></a>
<a name="ln-290"></a>
<a name="ln-291"></a>    <span class="k">function </span><span class="n">xdmf_handler_HasPrefix</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> <span class="k">result</span> <span class="p">(</span><span class="n">HasPrefix</span><span class="p">)</span>
<a name="ln-292"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-293"></a>    <span class="c">!&lt; Check if the file prefix was already set</span>
<a name="ln-294"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-295"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XMDF handler</span>
<a name="ln-296"></a>        <span class="kt">logical</span>                              <span class="kd">::</span> <span class="n">HasPrefix</span>             <span class="c">!&lt; Flag to check if Prefix has been set</span>
<a name="ln-297"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-298"></a>        <span class="n">HasPrefix</span> <span class="o">=</span> <span class="p">.</span><span class="n">false</span><span class="p">.</span>
<a name="ln-299"></a>        <span class="k">if</span><span class="p">(</span><span class="nb">allocated</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">Prefix</span><span class="p">))</span> <span class="k">then</span>
<a name="ln-300"></a><span class="k">            if</span><span class="p">(</span><span class="nb">len_trim</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">Prefix</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="n">HasPrefix</span> <span class="o">=</span> <span class="p">.</span><span class="n">true</span><span class="p">.</span>
<a name="ln-301"></a>        <span class="n">endif</span>
<a name="ln-302"></a>    <span class="k">end function </span><span class="n">xdmf_handler_HasPrefix</span>
<a name="ln-303"></a>
<a name="ln-304"></a>
<a name="ln-305"></a>    <span class="k">function </span><span class="n">xdmf_handler_GetHDF5Filename</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Step</span><span class="p">)</span> <span class="k">result</span> <span class="p">(</span><span class="n">HDF5FileName</span><span class="p">)</span>
<a name="ln-306"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-307"></a>    <span class="c">!&lt; Generate HDF5 Filename depending on time step</span>
<a name="ln-308"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-309"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>  <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                 <span class="c">!&lt; XMDF handler</span>
<a name="ln-310"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span> <span class="k">optional</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Step</span>                 <span class="c">!&lt; Force step number</span>
<a name="ln-311"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=</span><span class="p">:),</span> <span class="k">allocatable</span>         <span class="kd">::</span> <span class="n">HDF5FileName</span>         <span class="c">!&lt; Name of the current HDF5 file</span>
<a name="ln-312"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-313"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">HasPrefix</span><span class="p">())</span>
<a name="ln-314"></a>        <span class="k">if</span><span class="p">(</span><span class="nb">present</span><span class="p">(</span><span class="n">Step</span><span class="p">))</span> <span class="k">then</span>
<a name="ln-315"></a><span class="k">            </span><span class="n">HDF5Filename</span> <span class="o">=</span> <span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">prefix</span><span class="p">))</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span> <span class="n">n</span><span class="o">=</span><span class="n">Step</span><span class="p">)))</span><span class="o">//</span><span class="n">HDF5_EXT</span>
<a name="ln-316"></a>        <span class="k">else</span>
<a name="ln-317"></a><span class="k">            </span><span class="n">HDF5Filename</span> <span class="o">=</span> <span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">prefix</span><span class="p">))</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span> <span class="n">n</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">GetCurrentStep</span><span class="p">())))</span><span class="o">//</span><span class="n">HDF5_EXT</span>
<a name="ln-318"></a>        <span class="n">endif</span>
<a name="ln-319"></a>    <span class="k">end function </span><span class="n">xdmf_handler_GetHDF5Filename</span>
<a name="ln-320"></a>
<a name="ln-321"></a>
<a name="ln-322"></a>    <span class="k">function </span><span class="n">xdmf_handler_GetSpatialFilename</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Step</span><span class="p">)</span> <span class="k">result</span> <span class="p">(</span><span class="n">SpatialFileName</span><span class="p">)</span>
<a name="ln-323"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-324"></a>    <span class="c">!&lt; Generate HDF5 Filename depending on time step</span>
<a name="ln-325"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-326"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>  <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                 <span class="c">!&lt; XMDF handler</span>
<a name="ln-327"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span> <span class="k">optional</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Step</span>                 <span class="c">!&lt; Force step number</span>
<a name="ln-328"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=</span><span class="p">:),</span> <span class="k">allocatable</span>         <span class="kd">::</span> <span class="n">SpatialFileName</span>      <span class="c">!&lt; Name of the current Spatial file</span>
<a name="ln-329"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-330"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">HasPrefix</span><span class="p">())</span>
<a name="ln-331"></a>        <span class="k">if</span><span class="p">(</span><span class="nb">present</span><span class="p">(</span><span class="n">Step</span><span class="p">))</span> <span class="k">then</span>
<a name="ln-332"></a><span class="k">            </span><span class="n">SpatialfileName</span> <span class="o">=</span> <span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">prefix</span><span class="p">))</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span> <span class="n">n</span><span class="o">=</span><span class="n">Step</span><span class="p">)))</span><span class="o">//</span><span class="n">XI_EXT</span>
<a name="ln-333"></a>        <span class="k">else</span>
<a name="ln-334"></a><span class="k">            </span><span class="n">SpatialfileName</span> <span class="o">=</span> <span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">prefix</span><span class="p">))</span><span class="o">//</span><span class="s1">&#39;_&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span> <span class="n">n</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">GetCurrentStep</span><span class="p">())))</span><span class="o">//</span><span class="n">XI_EXT</span>
<a name="ln-335"></a>        <span class="n">endif</span>
<a name="ln-336"></a>    <span class="k">end function </span><span class="n">xdmf_handler_GetSpatialFilename</span>
<a name="ln-337"></a>
<a name="ln-338"></a>
<a name="ln-339"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_Open</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">FilePrefix</span><span class="p">,</span> <span class="n">Path</span><span class="p">,</span> <span class="n">Action</span><span class="p">)</span>
<a name="ln-340"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-341"></a>    <span class="c">!&lt; Open a XDMF file </span>
<a name="ln-342"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-343"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>      <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>             <span class="c">!&lt; XDMF handler</span>
<a name="ln-344"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span> <span class="k">optional</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">FilePrefix</span>       <span class="c">!&lt; XDMF filename prefix</span>
<a name="ln-345"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span> <span class="k">optional</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Path</span>             <span class="c">!&lt; Root path with slash</span>
<a name="ln-346"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>     <span class="k">optional</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Action</span>           <span class="c">!&lt; XDMF action to be performed (Read or Write)</span>
<a name="ln-347"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-348"></a>        <span class="k">if</span><span class="p">(</span><span class="nb">present</span><span class="p">(</span><span class="n">Action</span><span class="p">))</span>     <span class="n">this</span><span class="p">%</span><span class="n">Action</span> <span class="o">=</span> <span class="n">Action</span>
<a name="ln-349"></a>        <span class="k">if</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">is_root</span><span class="p">())</span> <span class="k">then</span>
<a name="ln-350"></a><span class="k">            </span><span class="n">this</span><span class="p">%</span><span class="n">Path</span>   <span class="o">=</span> <span class="s1">&#39;./&#39;</span>
<a name="ln-351"></a>            <span class="k">if</span><span class="p">(</span><span class="nb">present</span><span class="p">(</span><span class="n">FilePrefix</span><span class="p">))</span> <span class="n">this</span><span class="p">%</span><span class="n">Prefix</span> <span class="o">=</span> <span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">FilePrefix</span><span class="p">))</span>
<a name="ln-352"></a>            <span class="k">if</span><span class="p">(</span><span class="nb">present</span><span class="p">(</span><span class="n">Path</span><span class="p">))</span>       <span class="n">this</span><span class="p">%</span><span class="n">Path</span>   <span class="o">=</span> <span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">Path</span><span class="p">))</span><span class="o">//</span><span class="s1">&#39;/&#39;</span>
<a name="ln-353"></a>        <span class="n">endif</span>
<a name="ln-354"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_Open</span>
<a name="ln-355"></a>
<a name="ln-356"></a>
<a name="ln-357"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_OpenSpatialFile</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
<a name="ln-358"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-359"></a>    <span class="c">!&lt; Open a XI spatial file </span>
<a name="ln-360"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-361"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-362"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_grid_t</span><span class="p">)</span>                    <span class="kd">::</span> <span class="n">grid</span>                  <span class="c">!&lt; XDMF Grid </span>
<a name="ln-363"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_time_t</span><span class="p">)</span>                    <span class="kd">::</span> <span class="nb">time</span>                  <span class="c">!&lt; XDMF Time type</span>
<a name="ln-364"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-365"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span><span class="p">)</span>
<a name="ln-366"></a>        <span class="k">if</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">is_root</span><span class="p">())</span> <span class="k">then</span>
<a name="ln-367"></a><span class="k">            </span><span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">HasPrefix</span><span class="p">())</span>
<a name="ln-368"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">SetCurrentFilename</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">GetSpatialFileName</span><span class="p">())</span>
<a name="ln-369"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">set_filename</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">Path</span><span class="o">//</span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">GetCurrentFilename</span><span class="p">())</span>
<a name="ln-370"></a>            <span class="k">select case</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">action</span><span class="p">)</span>
<a name="ln-371"></a>                <span class="k">case</span><span class="p">(</span><span class="n">XDMF_ACTION_WRITE</span><span class="p">)</span>
<a name="ln-372"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">openfile</span><span class="p">(</span><span class="n">write_header</span><span class="o">=</span><span class="p">.</span><span class="n">false</span><span class="p">.)</span>
<a name="ln-373"></a>                    <span class="k">call </span><span class="n">grid</span><span class="p">%</span><span class="k">open</span><span class="p">(</span><span class="n">xml_handler</span> <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">xml_handler</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-374"></a>                            <span class="n">GridType</span><span class="o">=</span><span class="s1">&#39;Collection&#39;</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-375"></a>                            <span class="n">CollectionType</span><span class="o">=</span><span class="s1">&#39;Spatial&#39;</span><span class="p">)</span>
<a name="ln-376"></a>                    <span class="k">call </span><span class="nb">time</span><span class="p">%</span><span class="k">open</span><span class="p">(</span><span class="n">xml_handler</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">xml_handler</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-377"></a>                        <span class="n">TimeType</span><span class="o">=</span><span class="s1">&#39;Single&#39;</span><span class="p">,</span><span class="k">Value</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">GetCurrentValue</span><span class="p">())</span>
<a name="ln-378"></a>                    <span class="k">call </span><span class="nb">time</span><span class="p">%</span><span class="k">close</span><span class="p">(</span><span class="n">xml_handler</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">xml_handler</span><span class="p">)</span>
<a name="ln-379"></a>            <span class="k">end select</span>
<a name="ln-380"></a><span class="k">        </span><span class="n">endif</span>
<a name="ln-381"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_OpenSpatialFile</span>
<a name="ln-382"></a>
<a name="ln-383"></a>
<a name="ln-384"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_OpenSpatialGrid</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">GridID</span><span class="p">)</span>
<a name="ln-385"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-386"></a>    <span class="c">!&lt; Open a XDMF grid</span>
<a name="ln-387"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-388"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-389"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">GridID</span>                <span class="c">!&lt; Grid ID number</span>
<a name="ln-390"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_grid_t</span><span class="p">)</span>                    <span class="kd">::</span> <span class="n">grid</span>                  <span class="c">!&lt; XDMF Grid type</span>
<a name="ln-391"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-392"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">Action</span> <span class="o">==</span> <span class="n">XDMF_ACTION_WRITE</span><span class="p">)</span>
<a name="ln-393"></a>        <span class="k">if</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">is_root</span><span class="p">())</span> <span class="k">then</span>
<a name="ln-394"></a><span class="k">            </span><span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">HasPrefix</span><span class="p">())</span>
<a name="ln-395"></a>            <span class="k">call </span><span class="n">grid</span><span class="p">%</span><span class="k">open</span><span class="p">(</span><span class="n">xml_handler</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">xml_handler</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-396"></a>                <span class="n">Name</span><span class="o">=</span><span class="s1">&#39;Grid&#39;</span><span class="o">//</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">str</span><span class="p">(</span><span class="n">no_sign</span><span class="o">=</span><span class="p">.</span><span class="n">true</span><span class="p">.,</span><span class="n">n</span><span class="o">=</span><span class="n">GridID</span><span class="p">))))</span>
<a name="ln-397"></a>        <span class="n">endif</span>
<a name="ln-398"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_OpenSpatialGrid</span>
<a name="ln-399"></a>
<a name="ln-400"></a>
<a name="ln-401"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_ParseTemporalFile</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
<a name="ln-402"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-403"></a>    <span class="c">!&lt; Parse a readed file and distribute the information</span>
<a name="ln-404"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-405"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>  <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                 <span class="c">!&lt; XDMF handler</span>
<a name="ln-406"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>     <span class="k">pointer</span>               <span class="kd">::</span> <span class="n">DocumentRootNode</span>     <span class="c">!&lt; Fox DOM Document Root node</span>
<a name="ln-407"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>     <span class="k">pointer</span>               <span class="kd">::</span> <span class="n">DomainNode</span>           <span class="c">!&lt; Fox DOM Domain node</span>
<a name="ln-408"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>     <span class="k">pointer</span>               <span class="kd">::</span> <span class="n">TemporalGridNode</span>     <span class="c">!&lt; Fox DOM TemporalGrid node</span>
<a name="ln-409"></a>        <span class="k">type</span><span class="p">(</span><span class="n">NodeList</span><span class="p">),</span> <span class="k">pointer</span>               <span class="kd">::</span> <span class="n">XIncludeNodes</span>        <span class="c">!&lt; Fox DOM Xinclude node list</span>
<a name="ln-410"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>     <span class="k">pointer</span>               <span class="kd">::</span> <span class="n">XIncludeNode</span>         <span class="c">!&lt; Fox DOM Xinclude node </span>
<a name="ln-411"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_xinclude_t</span><span class="p">)</span>                 <span class="kd">::</span> <span class="n">xinclude</span>             <span class="c">!&lt; XDMF Xinclude type</span>
<a name="ln-412"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                          <span class="kd">::</span> <span class="n">i</span>
<a name="ln-413"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-414"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">Action</span> <span class="o">==</span> <span class="n">XDMF_ACTION_READ</span><span class="p">)</span>
<a name="ln-415"></a>        <span class="k">if</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">is_root</span><span class="p">())</span> <span class="k">then</span>
<a name="ln-416"></a><span class="k">            </span><span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">HasPrefix</span><span class="p">())</span>
<a name="ln-417"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">set_filename</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">Path</span><span class="o">//</span><span class="n">this</span><span class="p">%</span><span class="n">Prefix</span><span class="o">//</span><span class="n">XDMF_EXT</span><span class="p">)</span>
<a name="ln-418"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">ParseFile</span><span class="p">()</span>
<a name="ln-419"></a>            <span class="k">if</span><span class="p">(</span><span class="n">getNodeType</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">get_document_root</span><span class="p">())</span><span class="o">==</span><span class="n">DOCUMENT_NODE</span><span class="p">)</span> <span class="k">then</span>
<a name="ln-420"></a><span class="k">                </span><span class="n">DocumentRootNode</span> <span class="o">=&gt;</span> <span class="n">getDocumentElement</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">get_document_root</span><span class="p">())</span>
<a name="ln-421"></a>                <span class="n">DomainNode</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetUniqueNodeByTag</span><span class="p">(</span><span class="n">FatherNode</span> <span class="o">=</span> <span class="n">DocumentRootNode</span><span class="p">,</span> <span class="n">Tag</span> <span class="o">=</span> <span class="s1">&#39;Domain&#39;</span><span class="p">)</span>
<a name="ln-422"></a>                <span class="c">! Get Domain Node</span>
<a name="ln-423"></a>                <span class="k">if</span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">DomainNode</span><span class="p">))</span> <span class="k">return</span>
<a name="ln-424"></a>                <span class="c">! Get Temporal Grid Node</span>
<a name="ln-425"></a>                <span class="n">TemporalGridNode</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetFirstChildByTag</span><span class="p">(</span><span class="n">FatherNode</span> <span class="o">=</span> <span class="n">DomainNode</span><span class="p">,</span> <span class="n">Tag</span> <span class="o">=</span> <span class="s1">&#39;Grid&#39;</span><span class="p">)</span>
<a name="ln-426"></a>                <span class="k">if</span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">TemporalGridNode</span><span class="p">))</span> <span class="k">return</span>
<a name="ln-427"></a><span class="k">                </span><span class="n">XIncludeNodes</span> <span class="o">=&gt;</span> <span class="n">getElementsByTagname</span><span class="p">(</span><span class="n">TemporalGridNode</span><span class="p">,</span> <span class="s1">&#39;xi:include&#39;</span><span class="p">)</span>
<a name="ln-428"></a>
<a name="ln-429"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">Initialize</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">,</span> <span class="n">getLength</span><span class="p">(</span><span class="n">XIncludeNodes</span><span class="p">))</span>
<a name="ln-430"></a>                <span class="k">do </span><span class="n">i</span> <span class="o">=</span> <span class="mi">0_I4P</span><span class="p">,</span> <span class="n">getLength</span><span class="p">(</span><span class="n">XIncludeNodes</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1_I4P</span>
<a name="ln-431"></a>                    <span class="n">XIncludeNode</span> <span class="o">=&gt;</span> <span class="n">item</span><span class="p">(</span><span class="n">XIncludeNodes</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
<a name="ln-432"></a>                    <span class="k">call </span><span class="n">xinclude</span><span class="p">%</span><span class="n">Parse</span><span class="p">(</span><span class="n">DOMNode</span> <span class="o">=</span> <span class="n">XIncludeNode</span><span class="p">)</span>
<a name="ln-433"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">Append</span><span class="p">(</span><span class="n">Filename</span><span class="o">=</span><span class="n">xinclude</span><span class="p">%</span><span class="n">GetHRef</span><span class="p">())</span>
<a name="ln-434"></a>                <span class="n">enddo</span>
<a name="ln-435"></a>            <span class="n">endif</span>
<a name="ln-436"></a>            <span class="k">call </span><span class="n">destroy</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">get_document_root</span><span class="p">())</span>
<a name="ln-437"></a>        <span class="n">endif</span>
<a name="ln-438"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">SetParsed</span><span class="p">()</span>
<a name="ln-439"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">BroadCastNumberOfSteps</span><span class="p">()</span>
<a name="ln-440"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">Begin</span><span class="p">(</span><span class="n">Start</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">isStaticGrid</span><span class="p">())</span>
<a name="ln-441"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_ParseTemporalFile</span>
<a name="ln-442"></a>
<a name="ln-443"></a>
<a name="ln-444"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_ParseSpatialFile</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
<a name="ln-445"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-446"></a>    <span class="c">!&lt; Parse a readed file and distribute the information</span>
<a name="ln-447"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-448"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>  <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                 <span class="c">!&lt; XDMF handler</span>
<a name="ln-449"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>     <span class="k">pointer</span>               <span class="kd">::</span> <span class="n">SpatialGridNode</span>      <span class="c">!&lt; Fox DOM SpatialGrid node</span>
<a name="ln-450"></a>        <span class="k">type</span><span class="p">(</span><span class="n">NodeList</span><span class="p">),</span> <span class="k">pointer</span>               <span class="kd">::</span> <span class="n">UniformGridNodes</span>     <span class="c">!&lt; Fox DOM UniformGrid node list</span>
<a name="ln-451"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-452"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">Action</span> <span class="o">==</span> <span class="n">XDMF_ACTION_READ</span><span class="p">)</span>
<a name="ln-453"></a>        <span class="k">if</span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">isParsed</span><span class="p">())</span> <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">ParseTemporalFile</span><span class="p">()</span>
<a name="ln-454"></a>        <span class="k">if</span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">isParsed</span><span class="p">())</span> <span class="k">then</span>
<a name="ln-455"></a><span class="k">            if</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">is_root</span><span class="p">())</span> <span class="k">then</span>
<a name="ln-456"></a><span class="k">                call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">set_filename</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">path</span><span class="o">//</span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">GetCurrentFilename</span><span class="p">())</span>
<a name="ln-457"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">ParseFile</span><span class="p">()</span>
<a name="ln-458"></a>                <span class="c">! Get Spatial Grid Node</span>
<a name="ln-459"></a>                <span class="n">SpatialGridNode</span> <span class="o">=&gt;</span> <span class="n">getDocumentElement</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">get_document_root</span><span class="p">())</span>
<a name="ln-460"></a>                <span class="k">if</span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">SpatialGridNode</span><span class="p">))</span> <span class="k">return</span>
<a name="ln-461"></a><span class="k">                </span><span class="n">UniformGridNodes</span> <span class="o">=&gt;</span> <span class="n">getElementsByTagname</span><span class="p">(</span><span class="n">SpatialGridNode</span><span class="p">,</span> <span class="s1">&#39;Grid&#39;</span><span class="p">)</span>
<a name="ln-462"></a>                <span class="k">if</span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">UniformGridNodes</span><span class="p">))</span> <span class="k">return</span>
<a name="ln-463"></a>                <span class="c">! Get Fill Spatial Grid metainfo</span>
<a name="ln-464"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">FillSpatialGridDescriptor</span><span class="p">(</span><span class="n">UniformGridNodes</span><span class="o">=</span><span class="n">UniformGridNodes</span><span class="p">)</span>
<a name="ln-465"></a>                <span class="k">call </span><span class="n">destroy</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">get_document_root</span><span class="p">())</span>
<a name="ln-466"></a>            <span class="n">endif</span>
<a name="ln-467"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">SetParsed</span><span class="p">()</span>
<a name="ln-468"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">BroadcastMetadata</span><span class="p">()</span>
<a name="ln-469"></a>        <span class="n">endif</span>
<a name="ln-470"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_ParseSpatialFile</span>
<a name="ln-471"></a>
<a name="ln-472"></a>
<a name="ln-473"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_SerializeSpatialFile</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
<a name="ln-474"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-475"></a>    <span class="c">!&lt; Serialize the topology, geometry and attribute metadata to a XDMF file</span>
<a name="ln-476"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-477"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-478"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                         <span class="kd">::</span> <span class="n">IDidx</span>                 <span class="c">!&lt; GridID idex</span>
<a name="ln-479"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-480"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">Action</span> <span class="o">==</span> <span class="n">XDMF_ACTION_WRITE</span><span class="p">)</span>
<a name="ln-481"></a>        <span class="k">if</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">is_root</span><span class="p">())</span> <span class="k">then</span>
<a name="ln-482"></a><span class="k">            call </span><span class="n">this</span><span class="p">%</span><span class="n">OpenSpatialFile</span><span class="p">()</span>
<a name="ln-483"></a>            <span class="k">do </span><span class="n">IDidx</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_comm_size</span><span class="p">()</span><span class="o">-</span><span class="mi">1</span>
<a name="ln-484"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">OpenSpatialGrid</span><span class="p">(</span><span class="n">GridID</span> <span class="o">=</span> <span class="n">IDidx</span><span class="p">)</span>
<a name="ln-485"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteTopology</span><span class="p">(</span><span class="n">GridID</span> <span class="o">=</span> <span class="n">IDidx</span><span class="p">)</span>
<a name="ln-486"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteGeometry</span><span class="p">(</span><span class="n">GridID</span> <span class="o">=</span> <span class="n">IDidx</span><span class="p">)</span>
<a name="ln-487"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">WriteAttributes</span><span class="p">(</span><span class="n">GridID</span> <span class="o">=</span> <span class="n">IDidx</span><span class="p">)</span>
<a name="ln-488"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">CloseSpatialGrid</span><span class="p">()</span>
<a name="ln-489"></a>            <span class="n">enddo</span>
<a name="ln-490"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">CloseSpatialFile</span><span class="p">()</span>
<a name="ln-491"></a>            <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">UniformGridDescriptor</span><span class="p">%</span><span class="n">FreeAttributesMetadata</span><span class="p">()</span>
<a name="ln-492"></a>        <span class="n">endif</span>
<a name="ln-493"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">SetSerialized</span><span class="p">()</span>
<a name="ln-494"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_SerializeSpatialFile</span>
<a name="ln-495"></a>
<a name="ln-496"></a>
<a name="ln-497"></a>    <span class="k">function </span><span class="n">xdmf_handler_IsSpatialFileSerialized</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> <span class="k">result</span><span class="p">(</span><span class="n">IsSpatialFileSerialized</span><span class="p">)</span>
<a name="ln-498"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-499"></a>    <span class="c">!&lt; Check if the current Spatial file is already serialized</span>
<a name="ln-500"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-501"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                    <span class="c">!&lt; XDMF handler</span>
<a name="ln-502"></a>        <span class="kt">logical</span>                              <span class="kd">::</span> <span class="n">IsSpatialFileSerialized</span> <span class="c">!&lt; Flag to check if the current spatial file is already serialized</span>
<a name="ln-503"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-504"></a>        <span class="n">IsSpatialFileSerialized</span> <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">isSerialized</span><span class="p">()</span>
<a name="ln-505"></a>    <span class="k">end function </span><span class="n">xdmf_handler_IsSpatialFileSerialized</span>
<a name="ln-506"></a>
<a name="ln-507"></a>
<a name="ln-508"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_SerializeTemporalFile</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
<a name="ln-509"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-510"></a>    <span class="c">!&lt; Serialize the topology, geometry and attribute metadata to a XDMF file</span>
<a name="ln-511"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-512"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-513"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_grid_t</span><span class="p">)</span>                    <span class="kd">::</span> <span class="n">grid</span>                  <span class="c">!&lt; XDMF Grid type</span>
<a name="ln-514"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_domain_t</span><span class="p">)</span>                  <span class="kd">::</span> <span class="n">domain</span>                <span class="c">!&lt; XDMF Domain type</span>
<a name="ln-515"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_xinclude_t</span><span class="p">)</span>                <span class="kd">::</span> <span class="n">xinclude</span>              <span class="c">!&lt; XDMF XInclude type</span>
<a name="ln-516"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                         <span class="kd">::</span> <span class="n">i</span>
<a name="ln-517"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-518"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">Action</span> <span class="o">==</span> <span class="n">XDMF_ACTION_WRITE</span><span class="p">)</span>
<a name="ln-519"></a>        <span class="k">if</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">is_root</span><span class="p">())</span> <span class="k">then</span>
<a name="ln-520"></a><span class="k">            </span><span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">HasPrefix</span><span class="p">())</span>
<a name="ln-521"></a>            <span class="k">select case</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">action</span><span class="p">)</span>
<a name="ln-522"></a>                <span class="k">case</span><span class="p">(</span><span class="n">XDMF_ACTION_WRITE</span><span class="p">)</span>
<a name="ln-523"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">set_filename</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">Path</span><span class="o">//</span><span class="n">this</span><span class="p">%</span><span class="n">Prefix</span><span class="o">//</span><span class="n">XDMF_EXT</span><span class="p">)</span>
<a name="ln-524"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">OpenFile</span><span class="p">()</span>
<a name="ln-525"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">Begin</span><span class="p">()</span>
<a name="ln-526"></a>                    <span class="k">call </span><span class="n">domain</span><span class="p">%</span><span class="k">open</span><span class="p">(</span><span class="n">xml_handler</span> <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">xml_handler</span><span class="p">)</span>
<a name="ln-527"></a>                    <span class="k">call </span><span class="n">grid</span><span class="p">%</span><span class="k">open</span><span class="p">(</span><span class="n">xml_handler</span> <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">xml_handler</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-528"></a>                            <span class="n">GridType</span><span class="o">=</span><span class="s1">&#39;Collection&#39;</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-529"></a>                            <span class="n">CollectionType</span><span class="o">=</span><span class="s1">&#39;Temporal&#39;</span><span class="p">)</span>
<a name="ln-530"></a>                    <span class="k">do </span><span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">GetNumberOfSteps</span><span class="p">()</span>
<a name="ln-531"></a>                        <span class="k">call </span><span class="n">xinclude</span><span class="p">%</span><span class="k">Open</span><span class="p">(</span><span class="n">xml_handler</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">xml_handler</span><span class="p">,</span> <span class="n">HRef</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">GetCurrentFilename</span><span class="p">())</span>
<a name="ln-532"></a>                        <span class="k">call </span><span class="n">xinclude</span><span class="p">%</span><span class="k">Close</span><span class="p">(</span><span class="n">xml_handler</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">xml_handler</span><span class="p">)</span>
<a name="ln-533"></a>                        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="n">Next</span><span class="p">()</span>
<a name="ln-534"></a>                    <span class="n">enddo</span>
<a name="ln-535"></a>                    <span class="k">call </span><span class="n">grid</span><span class="p">%</span><span class="k">close</span><span class="p">(</span><span class="n">xml_handler</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">xml_handler</span><span class="p">)</span>
<a name="ln-536"></a>                    <span class="k">call </span><span class="n">domain</span><span class="p">%</span><span class="k">close</span><span class="p">(</span><span class="n">xml_handler</span> <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">xml_handler</span><span class="p">)</span>
<a name="ln-537"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">CloseFile</span><span class="p">()</span>
<a name="ln-538"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">StepsHandler</span><span class="p">%</span><span class="k">End</span><span class="p">()</span>
<a name="ln-539"></a>            <span class="k">end select</span>
<a name="ln-540"></a><span class="k">        </span><span class="n">endif</span>
<a name="ln-541"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_SerializeTemporalFile</span>
<a name="ln-542"></a>
<a name="ln-543"></a>
<a name="ln-544"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_CloseSpatialGrid</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
<a name="ln-545"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-546"></a>    <span class="c">!&lt; Close a XDMF grid</span>
<a name="ln-547"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-548"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-549"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_grid_t</span><span class="p">)</span>                    <span class="kd">::</span> <span class="n">grid</span>                  <span class="c">!&lt; XDMF Grid type</span>
<a name="ln-550"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-551"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">Action</span> <span class="o">==</span> <span class="n">XDMF_ACTION_WRITE</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">isOpen</span><span class="p">())</span>
<a name="ln-552"></a>        <span class="k">if</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">is_root</span><span class="p">())</span> <span class="k">then</span>
<a name="ln-553"></a><span class="k">            call </span><span class="n">grid</span><span class="p">%</span><span class="k">Close</span><span class="p">(</span><span class="n">xml_handler</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">xml_handler</span><span class="p">)</span>
<a name="ln-554"></a>        <span class="n">endif</span>
<a name="ln-555"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_CloseSpatialGrid</span>
<a name="ln-556"></a>
<a name="ln-557"></a>
<a name="ln-558"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_CloseSpatialFile</span><span class="p">(</span><span class="n">this</span><span class="p">)</span>
<a name="ln-559"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-560"></a>    <span class="c">!&lt; Close a XI spatial file </span>
<a name="ln-561"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-562"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-563"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_grid_t</span><span class="p">)</span>                    <span class="kd">::</span> <span class="n">grid</span>                  <span class="c">!&lt; XDMF Grid type</span>
<a name="ln-564"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_domain_t</span><span class="p">)</span>                  <span class="kd">::</span> <span class="n">domain</span>                <span class="c">!&lt; XDMF Domain type</span>
<a name="ln-565"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_xinclude_t</span><span class="p">)</span>                <span class="kd">::</span> <span class="n">xinclude</span>              <span class="c">!&lt; XDMF Xinclude type</span>
<a name="ln-566"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-567"></a>        <span class="k">if</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">is_root</span><span class="p">())</span> <span class="k">then</span>
<a name="ln-568"></a><span class="k">            select case</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">action</span><span class="p">)</span>
<a name="ln-569"></a>                <span class="k">case</span><span class="p">(</span><span class="n">XDMF_ACTION_WRITE</span><span class="p">)</span>
<a name="ln-570"></a>                    <span class="k">call </span><span class="n">grid</span><span class="p">%</span><span class="k">close</span><span class="p">(</span><span class="n">xml_handler</span><span class="o">=</span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">xml_handler</span><span class="p">)</span>
<a name="ln-571"></a>                    <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">closefile</span><span class="p">()</span>
<a name="ln-572"></a>            <span class="k">end select</span>
<a name="ln-573"></a><span class="k">        </span><span class="n">endif</span>
<a name="ln-574"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialFile</span><span class="p">%</span><span class="n">Free</span><span class="p">()</span>
<a name="ln-575"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_CloseSpatialFile</span>
<a name="ln-576"></a>
<a name="ln-577"></a>
<a name="ln-578"></a>    <span class="k">function </span><span class="n">xdmf_handler_NodeIsDocumentRoot</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">DOMNode</span><span class="p">)</span> <span class="k">result</span><span class="p">(</span><span class="n">NodeIsDocumentRoot</span><span class="p">)</span>
<a name="ln-579"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-580"></a>    <span class="c">!&lt; Check if a DOM node is a document root</span>
<a name="ln-581"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-582"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-583"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span> <span class="k">pointer</span><span class="p">,</span>   <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">DOMNode</span>               <span class="c">!&lt; FoX DOM Node </span>
<a name="ln-584"></a>        <span class="kt">logical</span>                              <span class="kd">::</span> <span class="n">NodeIsDocumentRoot</span>    <span class="c">!&lt; Return True if the passed node is the root of the document</span>
<a name="ln-585"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-586"></a>        <span class="n">NodeIsDocumentRoot</span> <span class="o">=</span> <span class="p">.</span><span class="n">false</span><span class="p">.</span>
<a name="ln-587"></a>        <span class="k">if</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">DOMNode</span><span class="p">))</span> <span class="k">then</span>
<a name="ln-588"></a><span class="k">            </span><span class="n">NodeIsDocumentRoot</span> <span class="o">=</span> <span class="p">(</span><span class="n">getNodeType</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">TemporalFile</span><span class="p">%</span><span class="n">get_document_root</span><span class="p">())</span><span class="o">==</span><span class="n">DOCUMENT_NODE</span><span class="p">)</span>
<a name="ln-589"></a>        <span class="n">endif</span>
<a name="ln-590"></a>    <span class="k">end function </span><span class="n">xdmf_handler_NodeIsDocumentRoot</span>
<a name="ln-591"></a>
<a name="ln-592"></a>
<a name="ln-593"></a>    <span class="k">function </span><span class="n">xdmf_handler_GetUniqueNodeByTag</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">FatherNode</span><span class="p">,</span> <span class="n">Tag</span><span class="p">)</span> <span class="k">result</span><span class="p">(</span><span class="n">ChildNode</span><span class="p">)</span>
<a name="ln-594"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-595"></a>    <span class="c">!&lt; Return the first FoX DOM child node given a father node</span>
<a name="ln-596"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-597"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>      <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>            <span class="c">!&lt; XDMF handler</span>
<a name="ln-598"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>        <span class="k">pointer</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">FatherNode</span>      <span class="c">!&lt; Fox DOM Father node</span>
<a name="ln-599"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Tag</span>             <span class="c">!&lt; Fox DOM Child node</span>
<a name="ln-600"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>        <span class="k">pointer</span>                <span class="kd">::</span> <span class="n">ChildNode</span>       <span class="c">!&lt; Fox DOM result Child node</span>
<a name="ln-601"></a>        <span class="k">type</span><span class="p">(</span><span class="n">NodeList</span><span class="p">),</span>    <span class="k">pointer</span>                <span class="kd">::</span> <span class="n">Childrens</span>       <span class="c">!&lt; List of childrens of the document root node</span>
<a name="ln-602"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-603"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">Action</span> <span class="o">==</span> <span class="n">XDMF_ACTION_READ</span><span class="p">)</span>
<a name="ln-604"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">ChildNode</span><span class="p">)</span>
<a name="ln-605"></a>        <span class="k">if</span><span class="p">(</span><span class="n">hasChildNodes</span><span class="p">(</span><span class="n">FatherNode</span><span class="p">))</span> <span class="k">then</span>
<a name="ln-606"></a><span class="k">            </span><span class="n">Childrens</span> <span class="o">=&gt;</span> <span class="n">getElementsByTagname</span><span class="p">(</span><span class="n">FatherNode</span><span class="p">,</span> <span class="n">Tag</span><span class="p">)</span>
<a name="ln-607"></a>            <span class="k">if</span><span class="p">(</span><span class="n">getLength</span><span class="p">(</span><span class="n">Childrens</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1_I4P</span><span class="p">)</span> <span class="n">ChildNode</span> <span class="o">=&gt;</span> <span class="n">item</span><span class="p">(</span><span class="n">Childrens</span><span class="p">,</span> <span class="mi">0_I4P</span><span class="p">)</span>
<a name="ln-608"></a>        <span class="n">endif</span>
<a name="ln-609"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">Childrens</span><span class="p">)</span>
<a name="ln-610"></a>    <span class="k">end function </span><span class="n">xdmf_handler_GetUniqueNodeByTag</span>
<a name="ln-611"></a>
<a name="ln-612"></a>
<a name="ln-613"></a>    <span class="k">function </span><span class="n">xdmf_handler_GetFirstChildByTag</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">FatherNode</span><span class="p">,</span> <span class="n">Tag</span><span class="p">)</span> <span class="k">result</span><span class="p">(</span><span class="n">ChildNode</span><span class="p">)</span>
<a name="ln-614"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-615"></a>    <span class="c">!&lt; Return the first FoX DOM child node given a father node</span>
<a name="ln-616"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-617"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>      <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>             <span class="c">!&lt; XDMF handler</span>
<a name="ln-618"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>        <span class="k">pointer</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">FatherNode</span>       <span class="c">!&lt; Fox DOM Father node</span>
<a name="ln-619"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>           <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Tag</span>              <span class="c">!&lt; Fox DOM Child node</span>
<a name="ln-620"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>        <span class="k">pointer</span>                <span class="kd">::</span> <span class="n">ChildNode</span>        <span class="c">!&lt; Fox DOM result Child node</span>
<a name="ln-621"></a>        <span class="k">type</span><span class="p">(</span><span class="n">NodeList</span><span class="p">),</span>    <span class="k">pointer</span>                <span class="kd">::</span> <span class="n">Childrens</span>        <span class="c">!&lt; List of childrens of the document root node</span>
<a name="ln-622"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_grid_t</span><span class="p">)</span> <span class="kd">::</span> <span class="n">grid</span>
<a name="ln-623"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                              <span class="kd">::</span> <span class="n">i</span>                <span class="c">!&lt; Index for a loop in Childrens</span>
<a name="ln-624"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-625"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">Action</span> <span class="o">==</span> <span class="n">XDMF_ACTION_READ</span><span class="p">)</span>
<a name="ln-626"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">ChildNode</span><span class="p">)</span>
<a name="ln-627"></a>        <span class="k">if</span><span class="p">(</span><span class="n">hasChildNodes</span><span class="p">(</span><span class="n">FatherNode</span><span class="p">))</span> <span class="k">then</span>
<a name="ln-628"></a><span class="k">            </span><span class="n">Childrens</span> <span class="o">=&gt;</span> <span class="n">getChildNodes</span><span class="p">(</span><span class="n">FatherNode</span><span class="p">)</span>
<a name="ln-629"></a>            <span class="k">do </span><span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">getLength</span><span class="p">(</span><span class="n">Childrens</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span>
<a name="ln-630"></a>                <span class="n">ChildNode</span> <span class="o">=&gt;</span> <span class="n">item</span><span class="p">(</span><span class="n">Childrens</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
<a name="ln-631"></a>                <span class="k">if</span><span class="p">(</span><span class="n">getNodeType</span><span class="p">(</span><span class="n">ChildNode</span><span class="p">)</span> <span class="o">==</span> <span class="n">TEXT_NODE</span><span class="p">)</span> <span class="k">cycle</span>
<a name="ln-632"></a><span class="k">                if</span><span class="p">(</span><span class="n">getTagName</span><span class="p">(</span><span class="n">Childnode</span><span class="p">)</span> <span class="o">==</span> <span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">Tag</span><span class="p">)))</span> <span class="k">exit</span>
<a name="ln-633"></a><span class="k">                nullify</span><span class="p">(</span><span class="n">ChildNode</span><span class="p">)</span>
<a name="ln-634"></a>            <span class="n">enddo</span>
<a name="ln-635"></a>        <span class="n">endif</span>
<a name="ln-636"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">Childrens</span><span class="p">)</span>
<a name="ln-637"></a>    <span class="k">end function </span><span class="n">xdmf_handler_GetFirstChildByTag</span>
<a name="ln-638"></a>
<a name="ln-639"></a>
<a name="ln-640"></a>    <span class="k">function </span><span class="n">xdmf_handler_GetDataItemXPath</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">DataItemNode</span><span class="p">)</span> <span class="k">result</span><span class="p">(</span><span class="n">XPath</span><span class="p">)</span>
<a name="ln-641"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-642"></a>    <span class="c">!&lt; Returns the XPath from a Hyperslab DataItem FoX DOM Node</span>
<a name="ln-643"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-644"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>         <span class="c">!&lt; XDMF handler</span>
<a name="ln-645"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>        <span class="k">pointer</span><span class="p">,</span>     <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">DataItemNode</span> <span class="c">!&lt; Fox DOM DataItem node</span>
<a name="ln-646"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=</span><span class="p">:),</span>  <span class="k">allocatable</span>                <span class="kd">::</span> <span class="n">XPath</span>        <span class="c">!&lt; XPath of the dataitem</span>
<a name="ln-647"></a>        <span class="k">type</span><span class="p">(</span><span class="n">NodeList</span><span class="p">),</span>    <span class="k">pointer</span>                    <span class="kd">::</span> <span class="n">Childrens</span>    <span class="c">!&lt; Fox DOM node list</span>
<a name="ln-648"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>        <span class="k">pointer</span>                    <span class="kd">::</span> <span class="n">ChildNode</span>    <span class="c">!&lt; Fox DOM node</span>
<a name="ln-649"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_dataitem_t</span><span class="p">)</span>                         <span class="kd">::</span> <span class="n">dataitem</span>     <span class="c">!&lt; XDMF Topology derived type</span>
<a name="ln-650"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                                  <span class="kd">::</span> <span class="n">i</span>            <span class="c">!&lt; Index for a loop in Childrens</span>
<a name="ln-651"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-652"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">Action</span> <span class="o">==</span> <span class="n">XDMF_ACTION_READ</span><span class="p">)</span>
<a name="ln-653"></a>        <span class="k">if</span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">DataItemNode</span><span class="p">))</span> <span class="k">return</span>
<a name="ln-654"></a><span class="k">        if</span><span class="p">(</span><span class="n">hasChildNodes</span><span class="p">(</span><span class="n">DataItemNode</span><span class="p">))</span> <span class="k">then</span>
<a name="ln-655"></a><span class="k">            </span><span class="n">Childrens</span> <span class="o">=&gt;</span> <span class="n">getChildNodes</span><span class="p">(</span><span class="n">DataItemNode</span><span class="p">)</span>
<a name="ln-656"></a>            <span class="k">do </span><span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">getLength</span><span class="p">(</span><span class="n">Childrens</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span>
<a name="ln-657"></a>                <span class="n">ChildNode</span> <span class="o">=&gt;</span> <span class="n">item</span><span class="p">(</span><span class="n">Childrens</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
<a name="ln-658"></a>                <span class="k">if</span><span class="p">(</span><span class="n">getNodeType</span><span class="p">(</span><span class="n">ChildNode</span><span class="p">)</span> <span class="o">==</span> <span class="n">TEXT_NODE</span><span class="p">)</span> <span class="k">cycle</span>
<a name="ln-659"></a><span class="k">                if</span><span class="p">(</span><span class="n">getTagName</span><span class="p">(</span><span class="n">Childnode</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;DataItem&#39;</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="p">(</span><span class="n">getAttribute</span><span class="p">(</span><span class="n">ChildNode</span><span class="p">,</span> <span class="s1">&#39;Format&#39;</span><span class="p">)</span> <span class="o">==</span> <span class="s1">&#39;HDF&#39;</span><span class="p">))</span> <span class="k">then</span>
<a name="ln-660"></a><span class="k">                    </span><span class="n">XPath</span> <span class="o">=</span> <span class="n">getTextContent</span><span class="p">(</span><span class="n">ChildNode</span><span class="p">)</span>
<a name="ln-661"></a>                <span class="n">endif</span>
<a name="ln-662"></a>            <span class="n">enddo</span>
<a name="ln-663"></a>        <span class="n">endif</span>
<a name="ln-664"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">Childrens</span><span class="p">)</span>
<a name="ln-665"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">ChildNode</span><span class="p">)</span>
<a name="ln-666"></a>        <span class="k">call </span><span class="n">dataitem</span><span class="p">%</span><span class="n">Free</span><span class="p">()</span>
<a name="ln-667"></a>    <span class="k">end function </span><span class="n">xdmf_handler_GetDataItemXPath</span>
<a name="ln-668"></a>
<a name="ln-669"></a>
<a name="ln-670"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_FillSpatialGridGeometry</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">GeometryNode</span><span class="p">,</span> <span class="n">ID</span><span class="p">)</span>
<a name="ln-671"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-672"></a>    <span class="c">!&lt; Fill the Spatial grid geometry metainfo from a Topology</span>
<a name="ln-673"></a>    <span class="c">!&lt; FoX DOM Node</span>
<a name="ln-674"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-675"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-676"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span> <span class="k">pointer</span><span class="p">,</span>   <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">GeometryNode</span>          <span class="c">!&lt; Fox DOM Geometry node</span>
<a name="ln-677"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">ID</span>                    <span class="c">!&lt; Grid IDentifier</span>
<a name="ln-678"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_geometry_t</span><span class="p">)</span>                <span class="kd">::</span> <span class="n">Geometry</span>              <span class="c">!&lt; XDMF Geometry derived type</span>
<a name="ln-679"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_dataitem_t</span><span class="p">)</span>                <span class="kd">::</span> <span class="n">DataItem</span>              <span class="c">!&lt; XDMF DataItem derived type</span>
<a name="ln-680"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span> <span class="k">pointer</span>                  <span class="kd">::</span> <span class="n">DataItemNode</span>          <span class="c">!&lt; Fox DOM Dataitem node</span>
<a name="ln-681"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I8P</span><span class="p">)</span>                         <span class="kd">::</span> <span class="n">auxDims</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>            <span class="c">!&lt; Aux dimensions variable</span>
<a name="ln-682"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                         <span class="kd">::</span> <span class="n">spacedims</span>             <span class="c">!&lt; Space dimensions</span>
<a name="ln-683"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                         <span class="kd">::</span> <span class="n">GeometryType</span>          <span class="c">!&lt; GeometryType</span>
<a name="ln-684"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-685"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">Action</span> <span class="o">==</span> <span class="n">XDMF_ACTION_READ</span><span class="p">)</span>
<a name="ln-686"></a>        <span class="k">if</span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span> <span class="nb">associated</span><span class="p">(</span><span class="n">GeometryNode</span><span class="p">))</span> <span class="k">return</span>
<a name="ln-687"></a><span class="k">        call </span><span class="n">Geometry</span><span class="p">%</span><span class="n">Parse</span><span class="p">(</span><span class="n">DOMNode</span> <span class="o">=</span> <span class="n">GeometryNode</span><span class="p">)</span>
<a name="ln-688"></a>        <span class="c">! Set GeometryType</span>
<a name="ln-689"></a>        <span class="n">GeometryType</span> <span class="o">=</span> <span class="n">GetXDMFGeometryTypeFromName</span><span class="p">(</span><span class="n">Geometry</span><span class="p">%</span><span class="n">get_GeometryType</span><span class="p">())</span>
<a name="ln-690"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">SetGeometryTypePerGridID</span><span class="p">(</span><span class="n">GeometryType</span><span class="p">,</span><span class="n">ID</span><span class="o">=</span><span class="n">ID</span><span class="p">)</span>
<a name="ln-691"></a>        <span class="c">! Set NumberOfNodes</span>
<a name="ln-692"></a>        <span class="n">DataItemNode</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetFirstChildByTag</span><span class="p">(</span><span class="n">FatherNode</span> <span class="o">=</span> <span class="n">GeometryNode</span><span class="p">,</span> <span class="n">Tag</span> <span class="o">=</span> <span class="s1">&#39;DataItem&#39;</span><span class="p">)</span>
<a name="ln-693"></a>        <span class="k">call </span><span class="n">DataItem</span><span class="p">%</span><span class="n">Parse</span><span class="p">(</span><span class="n">DomNode</span> <span class="o">=</span> <span class="n">DataItemNode</span><span class="p">)</span>
<a name="ln-694"></a>        <span class="n">auxDims</span> <span class="o">=</span> <span class="n">DataItem</span><span class="p">%</span><span class="n">get_Dimensions</span><span class="p">()</span>
<a name="ln-695"></a>        <span class="n">spacedims</span> <span class="o">=</span> <span class="n">GetSpaceDimension</span><span class="p">(</span><span class="n">GetXDMFGeometryTypeFromName</span><span class="p">(</span><span class="n">Geometry</span><span class="p">%</span><span class="n">get_GeometryType</span><span class="p">()))</span>
<a name="ln-696"></a>        <span class="k">select case</span> <span class="p">(</span><span class="n">GeometryType</span><span class="p">)</span>
<a name="ln-697"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_GEOMETRY_TYPE_XY</span><span class="p">,</span> <span class="n">XDMF_GEOMETRY_TYPE_XYZ</span><span class="p">)</span>
<a name="ln-698"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">SetNumberOfNodesPerGridID</span><span class="p">(</span><span class="n">AuxDims</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="n">spacedims</span><span class="p">,</span><span class="n">ID</span><span class="o">=</span><span class="n">ID</span><span class="p">)</span>
<a name="ln-699"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_GEOMETRY_TYPE_X_Y_Z</span><span class="p">)</span>
<a name="ln-700"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">SetNumberOfNodesPerGridID</span><span class="p">(</span><span class="n">AuxDims</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ID</span><span class="o">=</span><span class="n">ID</span><span class="p">)</span>
<a name="ln-701"></a>        <span class="k">end select</span>
<a name="ln-702"></a>        <span class="c">! Free</span>
<a name="ln-703"></a>        <span class="k">nullify</span><span class="p">(</span><span class="n">DataItemNode</span><span class="p">)</span>
<a name="ln-704"></a>        <span class="k">call </span><span class="n">Geometry</span><span class="p">%</span><span class="n">Free</span><span class="p">()</span>
<a name="ln-705"></a>        <span class="k">call </span><span class="n">DataItem</span><span class="p">%</span><span class="n">Free</span><span class="p">()</span>
<a name="ln-706"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_FillSpatialGridGeometry</span>
<a name="ln-707"></a>
<a name="ln-708"></a>
<a name="ln-709"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_FillSpatialGridDescriptor</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">UniformGridNodes</span><span class="p">)</span>
<a name="ln-710"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-711"></a>    <span class="c">!&lt; Fill Spatial Grid Descriptor From a FoX DOM UniformGrid node list</span>
<a name="ln-712"></a>    <span class="c">!&lt; given the Spatial Grid Node</span>
<a name="ln-713"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-714"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span>   <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                <span class="c">!&lt; XDMF handler</span>
<a name="ln-715"></a>        <span class="k">type</span><span class="p">(</span><span class="n">NodeList</span><span class="p">),</span> <span class="k">pointer</span><span class="p">,</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">UniformGridNodes</span>    <span class="c">!&lt; Fox DOM Grid node list</span>
<a name="ln-716"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>     <span class="k">pointer</span>                <span class="kd">::</span> <span class="n">UniformGridNode</span>     <span class="c">!&lt; Fox DOM Grid node</span>
<a name="ln-717"></a>        <span class="k">type</span><span class="p">(</span><span class="n">Node</span><span class="p">),</span>     <span class="k">pointer</span>                <span class="kd">::</span> <span class="n">ChildNode</span>           <span class="c">!&lt; Fox DOM node</span>
<a name="ln-718"></a>        <span class="k">type</span><span class="p">(</span><span class="n">NodeList</span><span class="p">),</span> <span class="k">pointer</span>                <span class="kd">::</span> <span class="n">AttributeNodes</span>      <span class="c">!&lt; Fox DOM Attribute node list</span>
<a name="ln-719"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_geometry_t</span><span class="p">)</span>                  <span class="kd">::</span> <span class="n">Geometry</span>            <span class="c">!&lt; XDMF Topology derived type</span>
<a name="ln-720"></a>        <span class="k">type</span><span class="p">(</span><span class="n">xdmf_attribute_t</span><span class="p">)</span>                 <span class="kd">::</span> <span class="n">Attribute</span>           <span class="c">!&lt; XDMF Attribute derived type</span>
<a name="ln-721"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">)</span>                           <span class="kd">::</span> <span class="n">i</span>                   <span class="c">!&lt; Index for a loop in UniformGridNodes</span>
<a name="ln-722"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-723"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">this</span><span class="p">%</span><span class="n">Action</span> <span class="o">==</span> <span class="n">XDMF_ACTION_READ</span><span class="p">)</span>
<a name="ln-724"></a>        <span class="k">if</span><span class="p">(</span><span class="nb">associated</span><span class="p">(</span><span class="n">UniformGridNodes</span><span class="p">))</span> <span class="k">then</span>
<a name="ln-725"></a><span class="k">            call </span><span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="k">Allocate</span><span class="p">(</span><span class="n">NumberOfGrids</span><span class="o">=</span><span class="n">getLength</span><span class="p">(</span><span class="n">UniformGridNodes</span><span class="p">))</span>
<a name="ln-726"></a>            <span class="k">do </span><span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">getLength</span><span class="p">(</span><span class="n">UniformGridNodes</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span>
<a name="ln-727"></a>                <span class="n">UniformGridNode</span> <span class="o">=&gt;</span> <span class="n">item</span><span class="p">(</span><span class="n">UniformGridNodes</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
<a name="ln-728"></a>                <span class="c">! Fill each Spatial Grid Topology</span>
<a name="ln-729"></a>                <span class="n">ChildNode</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetUniqueNodeByTag</span><span class="p">(</span><span class="n">FatherNode</span> <span class="o">=</span> <span class="n">UniformGridNode</span><span class="p">,</span> <span class="n">Tag</span> <span class="o">=</span> <span class="s1">&#39;Topology&#39;</span><span class="p">)</span>
<a name="ln-730"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">FillSpatialGridTopology</span><span class="p">(</span><span class="n">TopologyNode</span> <span class="o">=</span> <span class="n">ChildNode</span><span class="p">,</span> <span class="n">ID</span> <span class="o">=</span> <span class="n">i</span><span class="p">)</span>
<a name="ln-731"></a>                <span class="c">! Fill each Spatial Grid Geometry</span>
<a name="ln-732"></a>                <span class="n">ChildNode</span> <span class="o">=&gt;</span> <span class="n">this</span><span class="p">%</span><span class="n">GetUniqueNodeByTag</span><span class="p">(</span><span class="n">FatherNode</span> <span class="o">=</span> <span class="n">UniformGridNode</span><span class="p">,</span> <span class="n">Tag</span> <span class="o">=</span> <span class="s1">&#39;Geometry&#39;</span><span class="p">)</span>
<a name="ln-733"></a>                <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">FillSpatialGridGeometry</span><span class="p">(</span><span class="n">GeometryNode</span> <span class="o">=</span> <span class="n">Childnode</span><span class="p">,</span> <span class="n">ID</span> <span class="o">=</span> <span class="n">i</span><span class="p">)</span>
<a name="ln-734"></a>            <span class="n">enddo</span>
<a name="ln-735"></a>            <span class="k">nullify</span><span class="p">(</span><span class="n">UniformGridNode</span><span class="p">)</span>
<a name="ln-736"></a>            <span class="k">nullify</span><span class="p">(</span><span class="n">ChildNode</span><span class="p">)</span>
<a name="ln-737"></a>            <span class="k">nullify</span><span class="p">(</span><span class="n">Attributenodes</span><span class="p">)</span>
<a name="ln-738"></a>            <span class="k">call </span><span class="n">Geometry</span><span class="p">%</span><span class="n">Free</span><span class="p">()</span>
<a name="ln-739"></a>            <span class="k">call </span><span class="n">Attribute</span><span class="p">%</span><span class="n">Free</span><span class="p">()</span>
<a name="ln-740"></a>        <span class="n">endif</span>
<a name="ln-741"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_FillSpatialGridDescriptor</span>
<a name="ln-742"></a>
<a name="ln-743"></a>
<a name="ln-744"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_SetGeometry_R4P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">XYZ</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-745"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-746"></a>    <span class="c">!&lt; Add R4P geometry info to the handler. Used for deferred writing </span>
<a name="ln-747"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-748"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-749"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span>             <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">XYZ</span><span class="p">(:)</span>                <span class="c">!&lt; Grid coordinates</span>
<a name="ln-750"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>      <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Topology name</span>
<a name="ln-751"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-752"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span><span class="p">)</span>
<a name="ln-753"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">UniformGridDescriptor</span><span class="p">%</span><span class="n">SetGeometryMetadata</span><span class="p">(</span><span class="n">Name</span>            <span class="o">=</span> <span class="n">Name</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-754"></a>                                                            <span class="nb">Precision</span>       <span class="o">=</span> <span class="mi">4</span><span class="p">,</span>    <span class="p">&amp;</span>
<a name="ln-755"></a>                                                            <span class="n">ArrayDimensions</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">size</span><span class="p">(</span><span class="n">XYZ</span><span class="p">,</span> <span class="nb">dim</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">kind</span><span class="o">=</span><span class="n">I8P</span><span class="p">)</span><span class="o">/</span><span class="p">))</span>
<a name="ln-756"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_SetGeometry_R4P</span>
<a name="ln-757"></a>
<a name="ln-758"></a>
<a name="ln-759"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_SetGeometry_R8P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">XYZ</span><span class="p">,</span> <span class="n">Name</span><span class="p">)</span>
<a name="ln-760"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-761"></a>    <span class="c">!&lt; Add R8P geometry info to the handler. Used in deferred writing </span>
<a name="ln-762"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-763"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-764"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span>             <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">XYZ</span><span class="p">(:)</span>                <span class="c">!&lt; Grid coordinates</span>
<a name="ln-765"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>      <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Geometry name</span>
<a name="ln-766"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-767"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span><span class="p">)</span>
<a name="ln-768"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">UniformGridDescriptor</span><span class="p">%</span><span class="n">SetGeometryMetadata</span><span class="p">(</span><span class="n">Name</span>            <span class="o">=</span> <span class="n">Name</span><span class="p">,</span> <span class="p">&amp;</span>
<a name="ln-769"></a>                                                            <span class="nb">Precision</span>       <span class="o">=</span> <span class="mi">8</span><span class="p">,</span>    <span class="p">&amp;</span>
<a name="ln-770"></a>                                                            <span class="n">ArrayDimensions</span> <span class="o">=</span> <span class="p">(</span><span class="o">/</span><span class="n">size</span><span class="p">(</span><span class="n">XYZ</span><span class="p">,</span> <span class="nb">dim</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">kind</span><span class="o">=</span><span class="n">I8P</span><span class="p">)</span><span class="o">/</span><span class="p">))</span>
<a name="ln-771"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_SetGeometry_R8P</span>
<a name="ln-772"></a>
<a name="ln-773"></a>
<a name="ln-774"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_AppendAttribute_I4P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Name</span><span class="p">,</span> <span class="k">Type</span><span class="p">,</span> <span class="n">Center</span><span class="p">,</span> <span class="n">Attribute</span><span class="p">)</span>
<a name="ln-775"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-776"></a>    <span class="c">!&lt; Append I4P attribute info to the handler. Used in deferred writing </span>
<a name="ln-777"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-778"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-779"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>      <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Attribute Name</span>
<a name="ln-780"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="k">Type</span>                  <span class="c">!&lt; Attribute Type (Scalar, Vector, etc.)</span>
<a name="ln-781"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Center</span>                <span class="c">!&lt; Attribute Center (Node, Cell, etc.)</span>
<a name="ln-782"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Attribute</span><span class="p">(:)</span>          <span class="c">!&lt; I4P Grid attribute</span>
<a name="ln-783"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-784"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span><span class="p">)</span>
<a name="ln-785"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">UniformGridDescriptor</span><span class="p">%</span><span class="n">AppendAttributeMetadata</span><span class="p">(</span>  <span class="p">&amp;</span>
<a name="ln-786"></a>                        <span class="n">Name</span><span class="o">=</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">Name</span><span class="p">)),</span>                 <span class="p">&amp;</span>
<a name="ln-787"></a>                        <span class="k">Type</span><span class="o">=</span><span class="k">Type</span><span class="p">,</span> <span class="n">DataType</span><span class="o">=</span><span class="s1">&#39;Int&#39;</span><span class="p">,</span>                <span class="p">&amp;</span>
<a name="ln-788"></a>                        <span class="n">Center</span><span class="o">=</span><span class="n">Center</span><span class="p">,</span>                            <span class="p">&amp;</span>
<a name="ln-789"></a>                        <span class="nb">Precision</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span>                              <span class="p">&amp;</span>
<a name="ln-790"></a>                        <span class="n">ArrayDimensions</span><span class="o">=</span><span class="p">(</span><span class="o">/</span><span class="n">size</span><span class="p">(</span><span class="n">Attribute</span><span class="p">,</span> <span class="nb">dim</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">kind</span><span class="o">=</span><span class="n">I8P</span><span class="p">)</span><span class="o">/</span><span class="p">))</span>
<a name="ln-791"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_AppendAttribute_I4P</span>
<a name="ln-792"></a>
<a name="ln-793"></a>
<a name="ln-794"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_AppendAttribute_I8P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Name</span><span class="p">,</span> <span class="k">Type</span><span class="p">,</span> <span class="n">Center</span><span class="p">,</span> <span class="n">Attribute</span><span class="p">)</span>
<a name="ln-795"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-796"></a>    <span class="c">!&lt; Add I8P attribute info to the handler. Used in deferred writing </span>
<a name="ln-797"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-798"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-799"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>      <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Attribute Name</span>
<a name="ln-800"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="k">Type</span>                  <span class="c">!&lt; Attribute Type (Scalar, Vector, etc.)</span>
<a name="ln-801"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Center</span>                <span class="c">!&lt; Attribute Center (Node, Cell, etc.)</span>
<a name="ln-802"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I8P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Attribute</span><span class="p">(:)</span>          <span class="c">!&lt; I8P Grid attribute</span>
<a name="ln-803"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-804"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span><span class="p">)</span>
<a name="ln-805"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">UniformGridDescriptor</span><span class="p">%</span><span class="n">AppendAttributeMetadata</span><span class="p">(</span>  <span class="p">&amp;</span>
<a name="ln-806"></a>                        <span class="n">Name</span><span class="o">=</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">Name</span><span class="p">)),</span>                 <span class="p">&amp;</span>
<a name="ln-807"></a>                        <span class="k">Type</span><span class="o">=</span><span class="k">Type</span><span class="p">,</span> <span class="n">DataType</span><span class="o">=</span><span class="s1">&#39;Int&#39;</span><span class="p">,</span>                <span class="p">&amp;</span>
<a name="ln-808"></a>                        <span class="n">Center</span><span class="o">=</span><span class="n">Center</span><span class="p">,</span>                            <span class="p">&amp;</span>
<a name="ln-809"></a>                        <span class="nb">Precision</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span>                              <span class="p">&amp;</span>
<a name="ln-810"></a>                        <span class="n">ArrayDimensions</span><span class="o">=</span><span class="p">(</span><span class="o">/</span><span class="n">size</span><span class="p">(</span><span class="n">Attribute</span><span class="p">,</span> <span class="nb">dim</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">kind</span><span class="o">=</span><span class="n">I8P</span><span class="p">)</span><span class="o">/</span><span class="p">))</span>
<a name="ln-811"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_AppendAttribute_I8P</span>
<a name="ln-812"></a>
<a name="ln-813"></a>
<a name="ln-814"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_AppendAttribute_R4P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Name</span><span class="p">,</span> <span class="k">Type</span><span class="p">,</span> <span class="n">Center</span><span class="p">,</span> <span class="n">Attribute</span><span class="p">)</span>
<a name="ln-815"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-816"></a>    <span class="c">!&lt; Add R4P attribute info to the handler. Used in deferred writing </span>
<a name="ln-817"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-818"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-819"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>      <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Attribute Name</span>
<a name="ln-820"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="k">Type</span>                  <span class="c">!&lt; Attribute Type (Scalar, Vector, etc.)</span>
<a name="ln-821"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Center</span>                <span class="c">!&lt; Attribute Center (Node, Cell, etc.)</span>
<a name="ln-822"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R4P</span><span class="p">),</span>             <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Attribute</span><span class="p">(:)</span>          <span class="c">!&lt; R4P Grid attribute</span>
<a name="ln-823"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-824"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span><span class="p">)</span>
<a name="ln-825"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">UniformGridDescriptor</span><span class="p">%</span><span class="n">AppendAttributeMetadata</span><span class="p">(</span>  <span class="p">&amp;</span>
<a name="ln-826"></a>                        <span class="n">Name</span><span class="o">=</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">Name</span><span class="p">)),</span>                 <span class="p">&amp;</span>
<a name="ln-827"></a>                        <span class="k">Type</span><span class="o">=</span><span class="k">Type</span><span class="p">,</span> <span class="n">DataType</span><span class="o">=</span><span class="s1">&#39;Float&#39;</span><span class="p">,</span>              <span class="p">&amp;</span>
<a name="ln-828"></a>                        <span class="n">Center</span><span class="o">=</span><span class="n">Center</span><span class="p">,</span>                            <span class="p">&amp;</span>
<a name="ln-829"></a>                        <span class="nb">Precision</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span>                              <span class="p">&amp;</span>
<a name="ln-830"></a>                        <span class="n">ArrayDimensions</span><span class="o">=</span><span class="p">(</span><span class="o">/</span><span class="n">size</span><span class="p">(</span><span class="n">Attribute</span><span class="p">,</span> <span class="nb">dim</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">kind</span><span class="o">=</span><span class="n">I8P</span><span class="p">)</span><span class="o">/</span><span class="p">))</span>
<a name="ln-831"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_AppendAttribute_R4P</span>
<a name="ln-832"></a>
<a name="ln-833"></a>
<a name="ln-834"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_AppendAttribute_R8P</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Name</span><span class="p">,</span> <span class="k">Type</span><span class="p">,</span> <span class="n">Center</span><span class="p">,</span> <span class="n">Attribute</span><span class="p">)</span>
<a name="ln-835"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-836"></a>    <span class="c">!&lt; Add R4P attribute info to the handler. Used in deferred writing </span>
<a name="ln-837"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-838"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">INOUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">this</span>                  <span class="c">!&lt; XDMF handler</span>
<a name="ln-839"></a>        <span class="kt">character</span><span class="p">(</span><span class="nb">len</span><span class="o">=*</span><span class="p">),</span>      <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Name</span>                  <span class="c">!&lt; Attribute Name</span>
<a name="ln-840"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="k">Type</span>                  <span class="c">!&lt; Attribute Type (Scalar, Vector, etc.)</span>
<a name="ln-841"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Center</span>                <span class="c">!&lt; Attribute Center (Node, Cell, etc.)</span>
<a name="ln-842"></a>        <span class="kt">real</span><span class="p">(</span><span class="n">R8P</span><span class="p">),</span>             <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>    <span class="kd">::</span> <span class="n">Attribute</span><span class="p">(:)</span>          <span class="c">!&lt; R4P Grid attribute</span>
<a name="ln-843"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-844"></a>        <span class="n">assert</span><span class="p">(</span><span class="n">this</span><span class="p">%</span><span class="n">State</span> <span class="o">==</span> <span class="n">XDMF_HANDLER_STATE_INIT</span><span class="p">)</span>
<a name="ln-845"></a>        <span class="k">call </span><span class="n">this</span><span class="p">%</span><span class="n">UniformGridDescriptor</span><span class="p">%</span><span class="n">AppendAttributeMetadata</span><span class="p">(</span>  <span class="p">&amp;</span>
<a name="ln-846"></a>                        <span class="n">Name</span><span class="o">=</span><span class="nb">trim</span><span class="p">(</span><span class="nb">adjustl</span><span class="p">(</span><span class="n">Name</span><span class="p">)),</span>                 <span class="p">&amp;</span>
<a name="ln-847"></a>                        <span class="k">Type</span><span class="o">=</span><span class="k">Type</span><span class="p">,</span> <span class="n">DataType</span><span class="o">=</span><span class="s1">&#39;Float&#39;</span><span class="p">,</span>              <span class="p">&amp;</span>
<a name="ln-848"></a>                        <span class="n">Center</span><span class="o">=</span><span class="n">Center</span><span class="p">,</span>                            <span class="p">&amp;</span>
<a name="ln-849"></a>                        <span class="nb">Precision</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span>                              <span class="p">&amp;</span>
<a name="ln-850"></a>                        <span class="n">ArrayDimensions</span><span class="o">=</span><span class="p">(</span><span class="o">/</span><span class="n">size</span><span class="p">(</span><span class="n">Attribute</span><span class="p">,</span> <span class="nb">dim</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="nb">kind</span><span class="o">=</span><span class="n">I8P</span><span class="p">)</span><span class="o">/</span><span class="p">))</span>
<a name="ln-851"></a>    <span class="k">end subroutine </span><span class="n">xdmf_handler_AppendAttribute_R8P</span>
<a name="ln-852"></a>
<a name="ln-853"></a>
<a name="ln-854"></a>    <span class="k">subroutine </span><span class="n">xdmf_handler_CalculateAttributeDimensions</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">GridID</span><span class="p">,</span> <span class="n">Center</span><span class="p">,</span> <span class="n">GlobalNumberOfData</span><span class="p">,</span> <span class="n">LocalNumberOfData</span><span class="p">,</span> <span class="n">DataOffset</span><span class="p">)</span>
<a name="ln-855"></a>    <span class="c">!-----------------------------------------------------------------</span>
<a name="ln-856"></a>    <span class="c">!&lt; Calculate hyperslab dimensions</span>
<a name="ln-857"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-858"></a>        <span class="k">class</span><span class="p">(</span><span class="n">xdmf_handler_t</span><span class="p">),</span> <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>  <span class="kd">::</span> <span class="n">this</span>                    <span class="c">!&lt; xmdf handler</span>
<a name="ln-859"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>  <span class="kd">::</span> <span class="n">GridID</span>                  <span class="c">!&lt; Grid ID</span>
<a name="ln-860"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I4P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span>  <span class="kd">::</span> <span class="n">Center</span>                  <span class="c">!&lt; Attribute center at (Node, Cell, etc.)</span>
<a name="ln-861"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I8P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">GlobalNumberOfData</span>      <span class="c">!&lt; Global number of data</span>
<a name="ln-862"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I8P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">LocalNumberOfData</span>       <span class="c">!&lt; Local number of data</span>
<a name="ln-863"></a>        <span class="kt">integer</span><span class="p">(</span><span class="n">I8P</span><span class="p">),</span>          <span class="k">intent</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span> <span class="kd">::</span> <span class="n">DataOffset</span>              <span class="c">!&lt; Data offset for current grid</span>
<a name="ln-864"></a>    <span class="c">!----------------------------------------------------------------- </span>
<a name="ln-865"></a>    <span class="c">!&lt; @TODO: face and edge centered attributes</span>
<a name="ln-866"></a>        <span class="k">select case</span><span class="p">(</span><span class="n">Center</span><span class="p">)</span>
<a name="ln-867"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_ATTRIBUTE_CENTER_NODE</span><span class="p">)</span>
<a name="ln-868"></a>                <span class="n">GlobalNumberOfData</span> <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGlobalNumberOfNodes</span><span class="p">()</span>
<a name="ln-869"></a>                <span class="n">LocalNumberOfData</span>  <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetNumberOfNodesPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">)</span>
<a name="ln-870"></a>                <span class="n">DataOffset</span>         <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetNodeOffsetPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">)</span>
<a name="ln-871"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_ATTRIBUTE_CENTER_CELL</span><span class="p">)</span>
<a name="ln-872"></a>                <span class="n">GlobalNumberOfData</span> <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGlobalNumberOfElements</span><span class="p">()</span>
<a name="ln-873"></a>                <span class="n">LocalNumberOfData</span>  <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetNumberOfElementsPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">)</span>
<a name="ln-874"></a>                <span class="n">DataOffset</span>         <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetElementOffsetPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">)</span>
<a name="ln-875"></a>            <span class="k">case</span> <span class="p">(</span><span class="n">XDMF_ATTRIBUTE_CENTER_GRID</span><span class="p">)</span>
<a name="ln-876"></a>                <span class="n">GlobalNumberOfData</span> <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">MPIEnvironment</span><span class="p">%</span><span class="n">get_comm_size</span><span class="p">()</span>
<a name="ln-877"></a>                <span class="n">LocalNumberOfData</span>  <span class="o">=</span> <span class="mi">1_I8P</span>
<a name="ln-878"></a>                <span class="n">DataOffset</span>         <span class="o">=</span> <span class="n">GridID</span>
<a name="ln-879"></a>            <span class="k">case </span><span class="n">Default</span>
<a name="ln-880"></a>                <span class="n">GlobalNumberOfData</span> <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetGlobalNumberOfNodes</span><span class="p">()</span>
<a name="ln-881"></a>                <span class="n">LocalNumberOfData</span>  <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetNumberOfNodesPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">)</span>
<a name="ln-882"></a>                <span class="n">DataOffset</span>         <span class="o">=</span> <span class="n">this</span><span class="p">%</span><span class="n">SpatialGridDescriptor</span><span class="p">%</span><span class="n">GetNodeOffsetPerGridID</span><span class="p">(</span><span class="n">ID</span><span class="o">=</span><span class="n">GridID</span><span class="p">)</span>
<a name="ln-883"></a>        <span class="k">end select</span>
<a name="ln-884"></a><span class="k">    end subroutine </span><span class="n">xdmf_handler_CalculateAttributeDimensions</span>
<a name="ln-885"></a>
<a name="ln-886"></a><span class="k">end module </span><span class="n">xdmf_handler</span>
</pre></div>

    </section>
    </div>
  </div>

  <section class="visible-xs visible-sm hidden-md">
    <hr>
    

<div class="panel panel-default">
  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-1">All Source Files</a></h3></div>
  <div id="allfiles-1" class="panel-collapse collapse">
    <div class="list-group">
      
      <a class="list-group-item" href="../sourcefile/ch_unstructured_hexahedron_perf.f90.html">ch_unstructured_hexahedron_perf.f90</a>
      
      <a class="list-group-item" href="../sourcefile/fox_xdmf.f90.html">fox_xdmf.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_contiguous_hyperslab_handler.f90.html">hdf5_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_dataset_per_process_handler.f90.html">hdf5_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_handler.f90.html">hdf5_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_structured_contiguous_hyperslab_handler.f90.html">hdf5_structured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_structured_dataset_per_process_handler.f90.html">hdf5_structured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_unstructured_contiguous_hyperslab_handler.f90.html">hdf5_unstructured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/hdf5_unstructured_dataset_per_process_handler.f90.html">hdf5_unstructured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/mpi_environment.f90.html">mpi_environment.f90</a>
      
      <a class="list-group-item" href="../sourcefile/spatial_grid_descriptor.f90.html">spatial_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/steps_handler.f90.html">steps_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/steps_handler_test.f90.html">steps_handler_test.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_contiguous_hyperslab_factory.f90.html">structured_contiguous_hyperslab_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_dataset_per_process_factory.f90.html">structured_dataset_per_process_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_spatial_grid_descriptor.f90.html">structured_spatial_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/structured_uniform_grid_descriptor.f90.html">structured_uniform_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_fox_wxml.f90.html">test_FoX_wxml.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_rectilinear_contiguous_hyperslabs_handler.f90.html">test_hdf5_rectilinear_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_rectilinear_dataset_per_process_handler.f90.html">test_hdf5_rectilinear_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_regular_contiguous_hyperslabs_handler.f90.html">test_hdf5_regular_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_regular_dataset_per_process_handler.f90.html">test_hdf5_regular_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_unstructured_contiguous_hyperslabs_handler.f90.html">test_hdf5_unstructured_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_hdf5_unstructured_dataset_per_process_handler.f90.html">test_hdf5_unstructured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_mpi_environment.f90.html">test_mpi_environment.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_attribute.f90.html">test_xdmf_attribute.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_character_data.f90.html">test_xdmf_character_data.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_dataitem.f90.html">test_xdmf_dataitem.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_geometry.f90.html">test_xdmf_geometry.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_grid.f90.html">test_xdmf_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90.html">test_xdmf_rectilinear_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_rectilinear_dataset_per_process.f90.html">test_xdmf_rectilinear_dataset_per_process.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_regular_contiguous_hyperslabs_handler.f90.html">test_xdmf_regular_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_regular_dataset_per_process.f90.html">test_xdmf_regular_dataset_per_process.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_time.f90.html">test_xdmf_time.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_topology.f90.html">test_xdmf_topology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_unstructured_contiguous_hyperslabs_handler.f90.html">test_xdmf_unstructured_contiguous_hyperslabs_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_unstructured_dataset_per_process.f90.html">test_xdmf_unstructured_dataset_per_process.f90</a>
      
      <a class="list-group-item" href="../sourcefile/test_xdmf_xinclude.f90.html">test_xdmf_xinclude.f90</a>
      
      <a class="list-group-item" href="../sourcefile/try_compile_hdf5_mod.f90.html">try_compile_hdf5_mod.f90</a>
      
      <a class="list-group-item" href="../sourcefile/try_compile_mpi_mod.f90.html">try_compile_mpi_mod.f90</a>
      
      <a class="list-group-item" href="../sourcefile/uniform_grid_descriptor.f90.html">uniform_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_contiguous_hyperslab_factory.f90.html">unstructured_contiguous_hyperslab_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_dataset_per_process_factory.f90.html">unstructured_dataset_per_process_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_spatial_grid_descriptor.f90.html">unstructured_spatial_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/unstructured_uniform_grid_descriptor.f90.html">unstructured_uniform_grid_descriptor.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_attribute.f90.html">xdmf_attribute.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_character_data.f90.html">xdmf_character_data.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_contiguous_hyperslab_handler.f90.html">xdmf_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_dataitem.f90.html">xdmf_dataitem.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_dataset_per_process_handler.f90.html">xdmf_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_domain.f90.html">xdmf_domain.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_element.f90.html">xdmf_element.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_file.f90.html">xdmf_file.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_geometry.f90.html">xdmf_geometry.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_grid.f90.html">xdmf_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_handler.f90.html">xdmf_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_information.f90.html">xdmf_information.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_parameters.f90.html">xdmf_parameters.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_structured_contiguous_hyperslab_handler.f90.html">xdmf_structured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_structured_dataset_per_process_handler.f90.html">xdmf_structured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_time.f90.html">xdmf_time.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_topology.f90.html">xdmf_topology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_unstructured_contiguous_hyperslab_handler.f90.html">xdmf_unstructured_contiguous_hyperslab_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_unstructured_dataset_per_process_handler.f90.html">xdmf_unstructured_dataset_per_process_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_utils.f90.html">xdmf_utils.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xdmf_xinclude.f90.html">xdmf_xinclude.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for.f90.html">xh5for.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_abstract_factory.f90.html">xh5for_abstract_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_rectilinear_grid.f90.html">xh5for_ch_rectilinear_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_rectilinear_non_static_grid_series.f90.html">xh5for_ch_rectilinear_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_rectilinear_static_grid_series.f90.html">xh5for_ch_rectilinear_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_regular_grid.f90.html">xh5for_ch_regular_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_regular_non_static_grid_series.f90.html">xh5for_ch_regular_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_regular_static_grid_series.f90.html">xh5for_ch_regular_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_hexahedron.f90.html">xh5for_ch_unstructured_hexahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_hexahedron_perf.f90.html">xh5for_ch_unstructured_hexahedron_perf.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_mixedtopology.f90.html">xh5for_ch_unstructured_mixedtopology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_non_static_tetrahedron.f90.html">xh5for_ch_unstructured_non_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_quadilateral.f90.html">xh5for_ch_unstructured_quadilateral.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_static_mixed_series.f90.html">xh5for_ch_unstructured_static_mixed_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_static_tetrahedron.f90.html">xh5for_ch_unstructured_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_tetrahedron.f90.html">xh5for_ch_unstructured_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_ch_unstructured_triangles.f90.html">xh5for_ch_unstructured_triangles.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_rectilinear_grid.f90.html">xh5for_dpp_rectilinear_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_rectilinear_non_static_grid_series.f90.html">xh5for_dpp_rectilinear_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_rectilinear_static_grid_series.f90.html">xh5for_dpp_rectilinear_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_regular_grid.f90.html">xh5for_dpp_regular_grid.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_regular_non_static_grid_series.f90.html">xh5for_dpp_regular_non_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_regular_static_grid_series.f90.html">xh5for_dpp_regular_static_grid_series.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_hexahedron.f90.html">xh5for_dpp_unstructured_hexahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_mixedtopology.f90.html">xh5for_dpp_unstructured_mixedtopology.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_non_static_tetrahedron.f90.html">xh5for_dpp_unstructured_non_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_quadilateral.f90.html">xh5for_dpp_unstructured_quadilateral.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_static_tetrahedron.f90.html">xh5for_dpp_unstructured_static_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_tetrahedron.f90.html">xh5for_dpp_unstructured_tetrahedron.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_dpp_unstructured_triangles.f90.html">xh5for_dpp_unstructured_triangles.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_factory.f90.html">xh5for_factory.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_handler.f90.html">xh5for_handler.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_metadata.f90.html">xh5for_metadata.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_parameters.f90.html">xh5for_parameters.f90</a>
      
      <a class="list-group-item" href="../sourcefile/xh5for_utils.f90.html">xh5for_utils.f90</a>
      
    </div>
  </div>
</div>


  </section>
  
    <hr>    
    </div> <!-- /container -->
    <footer>
      <div class="container">
      <div class="row">
        <div class="col-xs-6 col-md-4"><p>&copy; 2016 </p></div>
        <div class="col-xs-6 col-md-4 col-md-push-4">
          <p class="text-right">
            Documentation generated by 
            <a href="https://github.com/cmacmackin/ford">FORD</a>
             on 2016-11-08T12:24:53.235950 
          </p>
        </div>
        <div class="col-xs-12 col-md-4 col-md-pull-4"><p class="text-center"> XH5For was developed by Víctor Sande Veiga</p></div>
      </div>
      <br>
      </div> <!-- /container -->    
    </footer>

    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
<!--
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
-->
    <script src="../js/bootstrap.min.js"></script>
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="../js/ie10-viewport-bug-workaround.js"></script>

    <!-- MathJax JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script type="text/x-mathjax-config">
      MathJax.Hub.Config({
        TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } },
        jax: ['input/TeX','input/MathML','output/HTML-CSS'],
        extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'],
        'HTML-CSS': { 
           styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} }
        }
      });
    </script>
    <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
    
    
    <script src="../tipuesearch/tipuesearch_content.js"></script>
    <link  href="../tipuesearch/tipuesearch.css" rel="stylesheet">
    <script src="../tipuesearch/tipuesearch_set.js"></script>
    <script src="../tipuesearch/tipuesearch.js"></script>
    
    
  </body>
</html>